文
章
目
录
章
目
录
本篇Log4j2教程列出了一些实用且常用的log4j2日志输出格式供您参考,这样我们就不必每次创建/编辑log4j配置时都浪费时间构建这些模式了。
这里要提一下,我们使用以下log格式模式布局。请注意模式属性。log4j2.xml:
<Configuration status="warn">
<Appenders>
<!-- Console appender 配置-->
<Console name="console" target="SYSTEM_OUT">
<PatternLayout
pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</Console>
</Appenders>
<Loggers>
<!-- Root logger referring to console appender -->
<Root level="info" additivity="false">
<AppenderRef ref="console" />
</Root>
</Loggers>
</Configuration>
为了演示,我们使用以下日志语句生成日志。
LOGGER.debug("Debug Message Logged !!");
LOGGER.info("Info Message Logged !!");
针对日志输出格式(pattern属性取值),我们总结了实用的7种模式,具体如下。
1. 简单的日志格式
%d [%p] %c{1} - %m%n
用于简单的日志记录,即日期、级别、记录器、消息。它将生成以下日志格式。
2016-06-20 19:18:02,958 [DEBUG] Log4j2HelloWorldExample - Debug Message Logged !!
2016-06-20 19:18:02,959 [INFO] Log4j2HelloWorldExample - Info Message Logged !!
2. 左对齐的日志级别
%d [%-6p] %c{1} - %m%n
使用[%-6p],日志级别应左对齐到六个字符的宽度。用于简单记录带有美观打印的日志级别。它将生成以下日志格式输出:
2016-06-20 19:21:05,271 [DEBUG ] Log4j2HelloWorldExample - Debug Message Logged !!
2016-06-20 19:21:05,272 [INFO ] Log4j2HelloWorldExample - Info Message Logged !!
3. 打印包信息
%d [%-6p] %c{1} - %m%n
使用%c{1}打印完整的包级别。它将生成以下日志格式输出:
2016-06-20 19:22:05,379 [DEBUG ] com.panziye.log4j2.examples.Log4j2HelloWorldExample - Debug Message Logged !!
2016-06-20 19:22:05,380 [INFO ] com.panziye.log4j2.examples.Log4j2HelloWorldExample - Info Message Logged !!
%c{3}将打印最多两个级别的包级别。
2016-06-20 19:23:48,202 [DEBUG ] log4j2.examples.Log4j2HelloWorldExample - Debug Message Logged !!
2016-06-20 19:23:48,204 [INFO ] log4j2.examples.Log4j2HelloWorldExample - Info Message Logged !!
5. 自定义日期模式
%d{yyyy/MM/dd HH:mm:ss,SSS} [%-6p] %c{1} - %m%n
用于自定义日期格式。它将生成以下日志格式输出:
2016/06/20 19:24:45,076 [DEBUG ] Log4j2HelloWorldExample - Debug Message Logged !!
2016/06/20 19:24:45,078 [INFO ] Log4j2HelloWorldExample - Info Message Logged !!
6. 详细的文件名、方法名和行号
%d [%-6p] %C{1}.%M(%F:%L) - %m%n
用于调用方类、方法、源文件和行号。它将生成以下日志格式输出:
2016-06-20 19:25:42,249 [DEBUG ] Log4j2HelloWorldExample.methodOne(Log4j2HelloWorldExample.java:14) - Debug Message Logged !!
2016-06-20 19:25:42,251 [INFO ] Log4j2HelloWorldExample.methodOne(Log4j2HelloWorldExample.java:15) - Info Message Logged !!
7. 完全详细的信息
%sn %d{yyyy/MM/dd HH:mm:ss,SSS} %r [%-6p] [%t] %c{3} %C{3}.%M(%F:%L) - %m%n
覆盖了上面讨论的所有格式样式,它将生成以下日志格式输出:
1 2016/06/20 19:27:03,595 620 [DEBUG ] [main] log4j2.examples.Log4j2HelloWorldExample log4j2.examples.Log4j2HelloWorldExample.main(Log4j2HelloWorldExample.java:14) - Debug Message Logged !!
2 2016/06/20 19:27:03,597 622 [INFO ] [main] log4j2.examples.Log4j2HelloWorldExample log4j2.examples.Log4j2HelloWorldExample.main(Log4j2HelloWorldExample.java:15) - Info Message Logged !!
您可以根据需要随意更改和使用任何实用的日志输出格式。