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?
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.
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.
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
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