记-Log4j 设置控制台打印彩色日志
一、Log4j 设置控制台打印彩色日志
Log4j 2.10版本以后,Log4j2默认关闭了Jansi(一个支持输出ANSI颜色的类库)
- JVM参数
-Dlog4j.skipJansi=false
- log4j2spring.xml
<property name="LOG_PATTERN" value="%highlight{%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n}{FATAL=red, ERROR=red, WARN=yellow, INFO=cyan, DEBUG=cyan,TRACE=blue}"/>
二、问题及解决办法
- 问题描述
linux下日志文件常出现
^[[m^[[36m
类似字符(使用vi
命令才可查看到,cat
命令不显示该字符),如下图
- 解决办法
控制台和日志文件使用不同的
pattern
,CONSOLE_LOG_PATTERN
和FILE_LOG_PATTERN
<!--变量配置-->
<Properties>
<!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
<!-- %logger{36} 表示 Logger 名字最长36个字符 -->
<property name="CONSOLE_LOG_PATTERN"
value="%highlight{%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n}{FATAL=red, ERROR=red, WARN=yellow, INFO=cyan, DEBUG=cyan,TRACE=blue}"/>
<property name="FILE_LOG_PATTERN"
value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/>
<!-- 定义日志存储的路径,不要配置相对路径 -->
<property name="FILE_PATH" value="log"/>
<!--项目名称-->
<property name="FILE_NAME" value="test"/>
</Properties>
参考: