log4j日志配置详解

简介

log4j是由apache提供的一个开源的轻量级日志管理框架。主要由三个重要部分构成:日志的输出格式,优先级以及输出目的地。
1.日志信息的优先级用来指定这条日志信息的重要程度;
2.日志信息的输出目的地指定了日志将打印到控制台还是文件中(或其它组件中);
3.输出格式则控制了日志信息的显示内容 。

日志级别

Log4j的日志级别总共七种:OFF,FETAL,ERROR,WARN,INFO,DEBUG,ALL.
Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,可以控制到应用程序中相应级别的日志信息的开关。

级别的控制

1.只要大于等于指定的控制级别,就可以输出
2.如果有多个logger,都可以匹配输出,则每个logger都产生输出,其中根logger匹配所有的输出;而级别控制来源于路径最详细的logger。

Appender

Log4j允许日志请求被输出到多个输出源。一个输出源被称做一个Appender 。一个logger可以设置超过一个的appender。

常见Appender

org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
org.apache.log4j.jdbc.JDBCAppender(把日志用JDBC记录到数据库中)

布局

布局就是指输出信息的格式。
常见Layout
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

常用的PatternLayout

%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

rootLogger与rootCategory

rootLogger与rootCategory都是log4j文件的配置根,Logger是Category的子类,rootCategory是旧的用法,不推荐使用。

配置根的语法

log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中,level 是日志记录的优先级。appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。

常见appenderName

stdout(标准输出)
stderr(标准错误输出)
file(文件输出)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章