Log4j详细介绍(七)----日志格式化器Layout
2013-06-07 23:23
323 查看
日志格式化器Layout负责格式化日志信息。方法log.error()的参数只包含日志信息,利用Layout可以附加其他信息,以输出更多的信息或者布局显示。
PatternLayout布局
PatternLayout是最常用的格式化器,用户可以自定义输出信息,例如日期,时间,所在的线程,类名,文件名,方法名,信息级别,文件级别,文件行数,例如:
符号%d, %C,%p,%m,%n等后面的便是参数将输出:
Log4j中常用的参数表:
Log4j能输出形形色色的参数,这些参数内容的长度可能是不同的。例如,%Cs输出类名,有的类名很长,有的类名很短,会导致日志比较凌乱。为了解决该问题,Log4j允许设置输出内容的长度等,不够的会用空格补上,是输出的内容编的整齐。
设置的方法是在%与参数符号间添加数字,例如%20p,%-20p等。正数表示右对齐,负数表示左对齐,数字表示最小宽度,不足时用空格补齐。还可以设置最大宽度,如果超出,则截取,方法是用小数点+数字设置,例如%.30p。
以%p为例,所有的调整格式见表:
HTMLLayout布局
HTMLLayout讲日志格式化输出为HTML代码,输出到文件后,可以直接用浏览器浏览。使用HTMLLayout时,日志文件后缀一般为.html。配置如下:
运行效果如下。深色的为记录到Exception。
好了log4j常用的知识点都介绍完了。
小结:记录日志时,可以使用Apache的commons-logging日志。该Log只是个接口,如果有Log4j,则使用Log4j记录日志,否则,会使用JDK的Log。Log4j 配置文件为log4j.properties,需要配置根日志rootLogger,输出地Appender,格式花器Layout。rootLogger是所有Log的父亲,除非重新覆盖,否则所有Log都将继承rootLogger的配置。
PatternLayout布局
PatternLayout是最常用的格式化器,用户可以自定义输出信息,例如日期,时间,所在的线程,类名,文件名,方法名,信息级别,文件级别,文件行数,例如:
# ERROR级别,输出到A1 log4j.rootLogger=DEBUG, A1 # 定义A1为控制台输出 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout #定义输出格式 log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%C]-[%p] %m%n
符号%d, %C,%p,%m,%n等后面的便是参数将输出:
2013-06-07 20:51:17,933 [com.log4j.test.Log4jJDBCTest]-[ERROR] ERROR级别输出
Log4j中常用的参数表:
参数 | 描述 | 实例 |
c | 输出Logger所在的类别(即Logger的名字)。 允许使用%c{数字}输出部分的名字(从右边往左边数)。见实例 | %c将输出com.log4j.Log4jTest %c{1}将输出Log4jTest %c{2}将输出log4j.Log4jTest %c{3}将输出com.log4j.Log4jTest |
C | 输出Logger所在类的名称 有时候Logger的名称不同于类名,例如Hibernate中用org.hibernate.SQL作为所有输出DML语句的Logger的名称,便于控制。允许使用%C{数字}输出部分的名称(从右边往左边)。见实例 | %C将输出com.log4j.Log4jTest %C{1}将输出Log4jTest %C{2}将输出log4j.Log4jTest %C{3}将输出com.log4j.Log4jTest |
d | 输出日期。允许使用%d{yyyy-MM-dd HH:mm:ss}格式化日期。%d不仅支持JDKSimpleDateFormat的日期格式,还支持log4j自己的日期格式,例如ABSOLUTE,DATE,ISO8601等 | %d将输出2013-06-06 22:24:25,353 %d{yyyy-MM-dd}将输出2013-06-06 %d{ABSOLUTE}将输出22:24:25,353 %d{DATE}将输出06六月2013 22:24:25,253 |
F | 输出所在的类文件名称 | %F将输出Log4jTest.java |
l | 输出语句所在的行数,包括类名,方法名,文件名,行数等 | %l将输出com.log4j.test.Log4jTest.main(Log4jTest.java:50) |
L | 输出语句所在的行数,只输出数字 | %L将输出 50 |
m | 输出日志 | 输出日志,即log.info(“”),log.debug(“”)参数 |
M | 输出方法名 | %M将输出main |
n | 换行.Windows下输出\r\n,Linux下输出\n | 含行 |
p | 输出日志级别(prioriry) | DEBUG,INFO,ERROR,FITAL等 |
r | 输出从程序启动到输出该日志之间的时间间隔,单位毫秒 | %r将输出300 |
t | 输出当前的线程名称 | %t将输出main,Thread-0,Thread-1等 |
% | %%用来输出百分号 |
设置的方法是在%与参数符号间添加数字,例如%20p,%-20p等。正数表示右对齐,负数表示左对齐,数字表示最小宽度,不足时用空格补齐。还可以设置最大宽度,如果超出,则截取,方法是用小数点+数字设置,例如%.30p。
以%p为例,所有的调整格式见表:
格式 | 对齐方式 | 最小宽度 | 最大宽度 | 描述 | 实例 |
[%10p] | 右对齐 | 10 | 正数右对齐,最小宽度 | [ ERROR] | |
[%-10p] | 左对齐 | 10 | 负数左对齐,最小宽度 | [ERROR ] | |
[%.4p] | 4 | 最大宽度 | [ERROR] | ||
[%10.20p] | 右对齐 | 10 | 20 | 正数右对齐,最大最小宽度 | [ ERROR] |
[%-10.20p] | 左对齐 | 10 | 20 | 负数左对齐,最大最小宽度 | [ERROR ] |
HTMLLayout讲日志格式化输出为HTML代码,输出到文件后,可以直接用浏览器浏览。使用HTMLLayout时,日志文件后缀一般为.html。配置如下:
log4j.rootLogger= DEBUG, H log4j.appender.H=org.apache.log4j.FileAppender log4j.appender.H.File=c:\\log.html log4j.appender.H.Append=false #不配置这个会乱码 log4j.appender.H.Encoding=GBK log4j.appender.H.layout=org.apache.log4j.HTMLLayout
运行效果如下。深色的为记录到Exception。
好了log4j常用的知识点都介绍完了。
小结:记录日志时,可以使用Apache的commons-logging日志。该Log只是个接口,如果有Log4j,则使用Log4j记录日志,否则,会使用JDK的Log。Log4j 配置文件为log4j.properties,需要配置根日志rootLogger,输出地Appender,格式花器Layout。rootLogger是所有Log的父亲,除非重新覆盖,否则所有Log都将继承rootLogger的配置。
相关文章推荐
- Log4j详细介绍(四)----日志记录器Logger
- linux系统各种日志存储路径和详细介绍
- log4j各个日志级别详细的解释
- java日志,(commons-loging 、log4j 、slf4j 、LogBack介绍)
- log4j.properties 日志文件的详细配置说明
- log4j详细的常用配置说明介绍
- springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置
- Linux系统的各种后门和日志工具详细介绍
- 转一篇关于Log4j的介绍文章,很详细,留待以后查阅
- Log4J详细配置-输出到日志文件中(下一讲讲解输出到数据库中)
- Log4j 的详细介绍
- 日志操作包-Log4j介绍
- 使用Log4j为项目配置日志输出应用详细总结及示例演示.
- java日志框架log4j详细配置及与slf4j联合使用教程
- 日志记录(log4j等)介绍
- log4j日志框架介绍
- 日志记录组件[Log4net]详细介绍
- cocos2d-x 学习日志(1)之Xcode中c++&Object-C混编,详细介绍如何在cocos2dx中访问object函数以及Apple Api
- java日志组件介绍(common-logging,log4j,slf4j,logback )
- 分布式日志收集系统Apache Flume的设计详细介绍