之前我们讲了Log4j日志级别的概念,这篇文章我们讲解下Log4j日志格式,Log4j日志格式控制有点类似C语言的printf函数,在Log4j的配置文件中,你可以在log4j.appender.CATNAME.layout.ConversionPattern项中配置日志输出格式,具体符号的意义如下:
%n - 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%p - 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL,比如[%-5p],INFO会输出[INFO ],多个空格,即做对其
%r - 输出自应用启动到输出该log信息耗费的毫秒数
%% - 显示百分号
%t - 输出产生该日志事件的线程名
%d - 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2017-03-10 11:05:18,178
%m - 日志内容
%l - 同%F%L%C%M 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Test.main(Test.java:18)
%F - java源文件名
%L - java源码行数
%C - java类名,%C{1} 输出最后一个元素
%c - 输出所属的类目,通常就是所在类的全名
%M - java方法名
控制Log4j的输出日志格式不复杂,看说明就行了,以下是我常用的Log4j日志输出格式配置:[%-5p] %d{yyyy-MM-dd HH:mm:ss} %l%n%m%n
输出结果类似
[DEBUG] 2017-03-10 11:22:34 Test.main(Test.java:14)
这是Debug级别信息!【10000】
[INFO ] 2017-03-10 11:22:34 Test.main(Test.java:16)
这是Info级别信息!【20000】
[WARN ] 2017-03-10 11:22:34 Test.main(Test.java:18)
这是Warn级别信息!【30000】
[ERROR] 2017-03-10 11:22:34 Test.main(Test.java:20)
这是Error级别信息!【40000】
[FATAL] 2017-03-10 11:22:34 Test.main(Test.java:22)
这是Fatal级别信息!【50000】
看完此篇文章对于如何控制Log4j日志格式是不是很清楚了?