Log4j 包括三个核心对象:
Logger对象: 负责获取日志信息
Layout对象: 用指定形式格式化日志信息对象
Appender对象: 负责将日志信息发布到不同的目的地,如文件,控制台,网络套接字等
Logger对象收集到日志信息后,传递给Appender对象,Appender对象根据Layout对象对日志信息进行格式化,然后写入Appender对象指定的目的地。
Log4j 使用log4j.properties作为它的配置文件
log4j.properties 的语法如下:
定义appender为appenderName, 如果想定义多个appender,可以在后面继续追加,用“,”隔开,如 appender1, appender12,...
第一个参数DEBUG定义的是log的级别: 可以取值为TRACE, DEBUG, INFO, WARN, ERROR, FATAL, ALL
其顺序为ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF;当指定level为DEBUG时,可以打印所以比它level小得log
Log4j.rootLogger = DEBUG, appenderName
上面一行指定了appender的name,下面需要对其进行具体定义
将appender定义为FileAppender,即输出到文件,具体文件为log.out
appender一般常用的就是FileAppender and ConsoleAppender, JDBCAppender
Log4j.appender.appenderName=org.apache.Log4j.FileAppender
Log4j.appender.appenderName.File = dir/log.out
我们还可以为appender定义layout
Layout可以为PatternLayout, DateLayout, HTMLLayout, SimpleLayout, XMLLayout
Log4j.appender.appenderName.layout = org.apache.Log4j.PatternLayout
Log4j.appender.appenderName.layout.conversionPattern=%m%n
这里我们有必要介绍一下conversionPattern:
它指定了我们记录日志的格式,默认为%r [%t] %p %c %x - %m%n
c: 使用它为输出的日志事件分类,比如对于分类 "a.b.c",模式 %c{2} 会输出 "b.c"
C: 使用它输出发起记录日志请求的类的全名,比如wang.jaler.HelloWorld, 模式%C{1} 输出 HelloWorld
M: 发起日志请求的方法名
d: 使用它输出记录日志的日期,比如 %d{HH:mm:ss,SSS} 或 %d{dd MMM yyyy HH:mm:ss,SSS}
m: 我们记录的具体信息内容
n: 输出平台对应的换行符
t: 输出生成日志事件的线程名
appender定义完后,可以将其添加到Logger对象:
Log4j.logger.[logger-name] = level, appender1, appender2...
网友评论