Teamcity build log

2020-02-20 05:11发布

问题:

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:

  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>
    
  2. add file.encoding=UTF-8 parameter launcher/conf/wrapper.conf that uses agent on start you should add it like that

    wrapper.app.parameter.6=-Dfile.encoding=UTF-8
    
  3. add -Dfile.encoding=UTF-8 in JAVA_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.