问题
I use TeamCity for continious integration. Solution checkouts on deploy machine and builds. Deploy machine running under Windows Server 2008 R2 - Russian. There are russian language PowerShell installed etc. In TeamCity build log, all russian symbols are in wrong encoding.
How to change encoding in build log?
回答1:
change encoding for log4j configuration for build log in
conf/teamcity-agent-log4j.xml
<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>
add file.encoding=UTF-8 parameter
launcher/conf/wrapper.conf
that uses agent on start you should add it like thatwrapper.app.parameter.6=-Dfile.encoding=UTF-8
add
-Dfile.encoding=UTF-8
inJAVA_OPTS
that steps helps me but now i have a bug - if you watching tail new Russian symbols in log replaced by "?". after refreshing the page they shown correct.
回答2:
For me, on Windows 7, TeamCity 9.0.3 helped adding "teamcity.runner.commandline.stdstreams.encoding=866" line into the buildAgent.properties file. I've got the encoding value by typing "chcp" in the command prompt.
回答3:
For Teamcity 9 the next had helped:
sudo dpkg-reconfigure locales
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
(do this being on your agents)
After that - restart the agent:
./BuildAgent/bin/agent.sh stop
回答4:
For me, on TeamCity 7 and TeamCity 8, helped editing file teamcity-agent-log4j.xml:
<?xml version='1.0' encoding='UTF-8' ?>
and restarting TeamCity after that.
But encoding is correct only after refreshing the log page.
来源:https://stackoverflow.com/questions/9213241/teamcity-build-log