1.进阶说明
通过配置Layout打印格式化的日志,
Log4j2支持很多的Layouts:
CSV GELF HTML JSON Pattern Serialized Syslog XML YAML
本文仅介绍Pattern Layouts的详细使用。
本文基于Log4j2基本使用入门。
请先参考上面的基本使用入门。
2.Pattern Layouts
Pattern Layouts是一个灵活的布局,
是最常用的日志格式配置。
该类的目标是格式化一个日志事件并返回结果,
结果的格式取决于转换模式。
转换模式与c语言中printf函数的转换模式密切相关。
转换模式由称为转换说明符的文字文本和格式控制表达式组成。
注意,任何文字文本,包括特殊字符,都可能包含在转换模式中。
特殊字符包括\t、\n、\r、\f,使用\输出一个反斜杠。
每个转换说明符以百分号(%)开头,
后面是可选的格式修饰符和必填的转换字符。
格式修饰符控制字段宽度、填充、左对齐和右对齐等内容。
转换字符指定数据的类型,例如日期、线程名、日志级别、日志名称等等。
3.一个简单的例子
log4j2.xml中的PatternLayout配置:
对应输出的日志信息:
11:33:08.440 [main] FATAL org.apache.logging.log4j.Log4j2Test - fatal level log
详细对应关系:
数据类型
转换字符
输出日志日期
%d{HH:mm:ss.SSS}
11:33:08.440
线程名
%t
main
日志级别
%-5level
FATAL
日志名称
%logger{36}
org.apache.logging.log4j.Log4j2Test
日志信息
%msg
fatal level log
换行
%n
日志结束换行
另外配置中的空白字符和[]-等字符都是按照原样输出的。
4.PatternLayout参数
属性
说明charset
指定日志字符集
pattern
指定日志输出格式
alwaysWriteExceptions
默认为true,输出异常
header
可选项,包含在每个日志文件的顶部
footer
可选项,包含在每个日志文件的尾部
上面没有把全部参数列出来,
下面仅介绍pattern参数的详细配置。
5.pattern属性
pattern可以配置各种类型的转换字符,
转换字符又称为占位符,
在打印日志的时候会被替换为实际的值。
转换字符
说明c{precision}
logger{precision}
输出发布日志事件的日志程序的名称。
C{precision}
class{precision}
输出发出日志记录请求的调用者的完全限定类名,可能会影响性能,谨慎使用。
d{pattern}
date{pattern}
输出日志事件的日期。日期转换说明符后面可以跟一组大括号,其中包含每个Sim