使用Log4j来记录日志-PatternLayout和格式修饰符

来源:互联网 发布:淘宝标题优化时间 编辑:程序博客网 时间:2024/04/29 22:50

1.PatternLayout

使用log4j总是被他的PatternLayout给吓傻了,以前总是拿着一个可以用的配置到处搬而不太懂什么意思~给大家整理下各个字符表达的什么意思。


官方API地址(看起来也比较简单易懂):

http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html



1.1 %m和%n

%m用于输出应用指定的输出内容,%n是一个换行符。 


如上所示,log4j输出了程序的info内容,并且进行了换行


1.2 %d

用于打印日志记录的时间。可以省去括号里面的内容。可以按照给定的格式输出时间


格式和SimpleDateFormat一致,但是官方API说SimpleDateFormat是很低效的,建议使用Log4j自己的日期格式器,使用%d{ABSOLUTE}、%d{DATE}或%d{ISO8601}(默认不写就是这个ISO8601)


我的理解就是直接%d就好了。

1.3 %p

用于输入日志打印的优先级[ERROR、WARN、INFO、DEBUG]


1.4 %F

用于输出调用日志记录的文件的名称。


官方api提醒说获取这个文件位置的信息是很慢的,应该尽量避免使用。


1.5 %c和%C(不太清楚有什么区别)

我自己也不太清楚,就只能看图说话了,感觉用c和C效果是一样的。作用是打印了类的路径。觉得可以替代上面的%F

后面可以跟个花括号进行截取


1.6 %L

用于输出文件的哪一行记录的这个日志。


上图可以看到,是UserController.java的第28行记录了这个日志。官方api也提醒说这个方法会很慢。


其它的以后再补充


2.格式修饰符

2.1 %20p

如果字符串长度少于20个,则在左侧进行空格填充,保证右侧对齐(超过20个就对不齐了)。这里的p可以换成其它的字符


2.2 %-20p

作用同上,但是空格填充在右侧、


2.3 %.3p

如果字符串长度超过3,则对字符串进行截取。从左侧开始截取,不知道怎样才能从右侧开始截取。



2.4 %20.30c

常见用法:如果字符串长度超过30则进行截取,如果低于20则在左侧补充空格

0 0
原创粉丝点击