编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

Log4j日志格式详解

之前我们讲了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日志格式是不是很清楚了?

未经允许不得转载: 技术文章 » Java编程 » Log4j日志格式详解