我使用TeamCity进行持续集成。解决方案在部署机器上检出和构建。部署机器运行在Windows Server 2008 R2(俄语版)上,并安装了俄语语言PowerShell等软件。在TeamCity的构建日志中,所有的俄语符号都显示为错误的编码。
如何更改构建日志的编码?
更改conf/teamcity-agent-log4j.xml
中的log4j配置编码以获取构建日志
<appender name="ROLL.BUILD" class="jetbrains.buildServer.util.TCRollingFileAppender">
<param name="file" value="${teamcity_logs}teamcity-build.log"/>
<param name="Encoding" value="UTF-8"/>
...
</appender>
在启动时在launcher/conf/wrapper.conf
中添加file.encoding=UTF-8参数,以使用代理
wrapper.app.parameter.6=-Dfile.encoding=UTF-8
在JAVA_OPTS
中添加-Dfile.encoding=UTF-8
这些步骤对我有帮助,但现在我遇到了一个问题 - 如果你正在观察日志尾部,新的俄语符号会被替换为“?”。 刷新页面后它们会正确显示。
对于我来说,使用Windows 7系统和TeamCity 9.0.3版本时,需要在buildAgent.properties文件中添加"teamcity.runner.commandline.stdstreams.encoding=866"这一行代码。我通过在命令提示符中输入"chcp"获取了编码值。
以下是有助于Teamcity 9的方法:
sudo dpkg-reconfigure locales
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
在您的代理上执行以下操作:
完成后,请重新启动代理:
./BuildAgent/bin/agent.sh stop
对于我来说,在 TeamCity 7 和 TeamCity 8 上,帮助编辑文件 teamcity-agent-log4j.xml:
<?xml version='1.0' encoding='UTF-8' ?>
然后重新启动TeamCity。
但只有在刷新日志页面之后,编码才是正确的。