在初次使用logback的自定义配置文件完整的控制spring boot日志后,发现了一个无法忍受的问题,就是日志乱码。

控制台看到打印日志乱码如下:

而日志文件打开:

记事本打开

sublime打开

关于这个问题,分析如下:

1.打印的“进入Controller日志控制中心----》》》”字样可以看出,至少代码本身和IDE环境的编码方式没有任何的关系;

2.打印出来的日志是logback-spring.xml文件起作用之后,显示在控制台的,而日志文件打开后,看到 不同的文本编辑器打开是不一样的。

结论:

1.可以肯定,这个是logback-spring.xml自定义配置起作用之后导致的

2.日志文件中并不是不乱码,而是不同的编辑软件的默认编码方式是不一样的。所以才会有的乱码,有的并不乱码。

观察logback-spring.xml文件。可以看到:

解决办法:

所以,我们只需要将<charset>中的值设置为自己想要的编码方式即可

基本的完整的logback-spring.xml文件代码:【注意,file部分的charset依旧为GBK】

 
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 文件输出格式 -->
<property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" />
<!-- dev -->
<property name="DEV_FILE_PATH" value="d:/datarun.log" />
<!-- test文件路径 -->
<property name="TEST_FILE_PATH" value="d:/test.log" />
<!-- pro文件路径 -->
<property name="PRO_FILE_PATH" value="/opt/test/log" /> <!-- 开发环境 -->
<springProfile name="dev">
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 每天产生一个文件 -->
<appender name="DEV-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路径 -->
<file>${DEV_FILE_PATH}</file>
<encoder>
<pattern>${PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名称 -->
<fileNamePattern>${DEV_FILE_PATH}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 文件最大保存历史数量 -->
<MaxHistory>100</MaxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${PATTERN}</pattern>
</layout>
</appender>
<logger name="org.springframework" level="debug"/>
<logger name="java.sql" level="debug"/>
<logger name="org" level="debug"/>
<logger name="com.guige" level="debug" />
<root level="debug">
<appender-ref ref="CONSOLE" />
<appender-ref ref="DEV-FILE" />
</root>
</springProfile> <!-- 测试环境 -->
<springProfile name="test">
<!-- 每天产生一个文件 -->
<appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路径 -->
<file>${TEST_FILE_PATH}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名称 -->
<fileNamePattern>${TEST_FILE_PATH}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 文件最大保存历史数量 -->
<MaxHistory>100</MaxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${PATTERN}</pattern>
</layout>
</appender>
<root level="info">
<appender-ref ref="TEST-FILE" />
</root>
</springProfile> <!-- 生产环境 -->
<springProfile name="prod">
<appender name="PROD_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${PRO_FILE_PATH}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${PRO_FILE_PATH}/warn.%d{yyyy-MM-dd}.log</fileNamePattern>
<MaxHistory>100</MaxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${PATTERN}</pattern>
</layout>
</appender>
<root level="warn">
<appender-ref ref="PROD_FILE" />
</root>
</springProfile>
</configuration>

运行结果:

最新文章

  1. WiX Toolset 教程索引页
  2. JSHint Options 翻译
  3. weblogic启动受管服务器报错Authentication for user weblogic denied (weblogic 11g 域账号密码不生效的解决方法)
  4. ASP.NET MVC Layout 嵌套
  5. 如何实现ZBrush中的Alt和Shift键的快速运用
  6. ubuntu下python3安装类库
  7. Spring中事务的5种属性总结
  8. Orchard Logging
  9. Oracle技术整理(转载)
  10. (转).net下Selenium2使用方法总结
  11. WinForm——记住密码
  12. git远程仓库之从远程库克隆
  13. jquery 三级关联选择效果
  14. JaveScript 中的正则表达式
  15. JS 一张图理解prototype、proto和constructor的关系
  16. Windows Update Medic Service 拒绝访问
  17. tomcat多实例的端口设置
  18. [python]python安装包错误
  19. 【BIEE】安装好BIEE后,修改默认登录页面不为QuickStart页面
  20. Laravel 文档中的 Service Providers

热门文章

  1. POJ 2942 Knights of the Round Table 黑白着色+点双连通分量
  2. 阿里云OSS服务开通STS安全令牌
  3. &lt;转 &gt;socket穿透代理代码(C++版)
  4. 《windows核心编程》 17章 内存映射文件
  5. H5网站模板——前台和后台
  6. Service(1)
  7. vue 过滤与全文索引
  8. Centos 7 部署FTP服务简单版
  9. ORA-1092 : opitsk aborting process---killed by oom killer
  10. QT学习二:工具栏