Log4j2 Console输出设置颜色

前言

我们都知道颜值是第一生产力,作为后起之秀的Log4j2在Console上输出的时候,竟然默认没有颜色。简直愧对”新一代日志框架“的称号。不过好在可以手动配置

设置

我们知道 Log4j2 通过PatternLayout 来格式化字符串,我们便从这里入手,让Console中显示出颜色来。

我们翻看官方文档可以看到,Log4j2为我们设置了默认的颜色,我们要做的就是在Pattern中应用规则即可。

image-20220210214130091

语法规则

1
2
3
4
5
6
7
8
9
10
11
12
<!-- 高亮语法如下 -->
%highlight{需要高亮的字符串}{高亮的规则}

<!-- 如果我们需要将日志输出等级设置高亮,我们可以像下面一样配置 -->
<!-- 注意: {pattern}{style} 这两个花括号之间不能有空格 -->
%highlight{ %-5level }{FATAL=white, ERROR=red, WARN=Yellow, INFO=Green, DEBUG=Blue, TRACE=blue}

<!-- 如果你要让pattern中的其他字段也有颜色的话,你需要使用style标签 -->
%style{pattern}{ANSI style}

<!-- 将Logger设置成cyan的颜色 -->
%style{%logger{5.}}{Cyan}

模板

下面是我自己设置好的颜色,类似于Spring-Boot的那样

1
<property name="LOG_PATTERN" value="%date{yyyy-MM-dd HH:mm:ss.SSS} %highlight{ %-5level }{FATAL=white, ERROR=red, WARN=Yellow, INFO=Green, DEBUG=Blue, TRACE=blue} ----  [%thread]   %style{%-50.50logger{5.}}{Cyan} - %msg%n" />

参考

Log4j – Log4j 2 Layouts (apache.org)