先了解一下log4j 的打印参数如下:
参数 | 说明 |
---|---|
%L | 输出代码中的行号 |
%l | 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数 如:Testlog.main(TestLog.java:10) |
%m | 输出代码中指定的消息 |
%p | 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL |
%c | 输出所属的类目,通常就是所在类的全名 |
%c{?} | 输出所属的类目,问号?里面可以填数字,意思是输出类目的层数,1就是只输出第一层类目,例如%c{1} :类名为com.skeleton.demo,输出的时候,只输出 demo |
%t | 输出产生该日志事件的线程名 |
%n | 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n” |
%d | 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式 如:%d{yyyy年MM月dd日 HH:mm:ss,SSS},输出类似:2012年01月05日 22:10:28,921 |
由此我们可以设定各种样式,如下:
- 最常用的样式:
[%p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
结果: - 上面的看起来很杂,我们可以自定义样式:
[%p]: %c{3}(%c{1}.java:%L)\t\t %n%m%n
结果 - 或者 :
[%p]: %c{3}(%c{1}.java:%L)\t\t %m%n