tomcat部署springboot项目console日志输出中文乱码问题

  • Post author:
  • Post category:其他


tomcat启动springboot项目输出的日志有两个层次。一是tomcat自身的输出,一个是springboot项目的输出。



tomcat输出乱码

tomcat的conf/logging.properties文件中

windows平台下默认是GBK的编码,但是部分tomcat这里设置成了UTF-8,导致了中文乱码

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = GBK



Springboot项目输出

  1. springboot 2 之后的版本

    application.properties文件中:
logging.charset.console=GBK

2.0之后提供了这个配置,但默认取了系统的编码,所以大概率不会出现乱码。

  1. springboot 1

    1.0的比较容易出现乱码,但是没有logging.charset.console这个配置。

    此时可以选择添加具体日志实现组件的配置文件。默认是logback的配置文件:

    logback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy


    设置编码

    logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">

    <property name="CONSOLE_LOG_PATTERN" value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%5p) | %green(%thread) | %boldMagenta(%logger{20}) | %cyan(%msg%n)"/>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
			<charset>GBK</charset>
        </encoder>
    </appender>

    <root level="info,debug">
        <appender-ref ref="console"/>
    </root>

</configuration>