如何正确配置Log4j

时间:2015-05-25 09:33:40

标签: java logging log4j

我是Log4j框架的新手,在阅读了一些内容后,我对记录机制有了一些了解,但仍然如此 我对以下属性有一些疑问。

log4j.category.com.cloud.sample=INFO, file, C
log4j.additivity.com.cloud.sample=true

log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.out
log4j.appender.C.ImmediateFlush=true
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%-5p %d [%t] %m%n

#log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

### direct messages to file ###
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${catalina.home}/var/basic/logs/sample.log
log4j.appender.file.Append=true
log4j.appender.file.MaxFileSize=10MB
# mylog.log.10 \u307e\u3067\u4fdd\u6301
log4j.appender.file.MaxBackupIndex=50
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %5p [%t] %c{1} - %m%n

log4j.rootLogger=INFO, C, file

在上面代码的第一行包含两个appender(文件,C)之后,我们将为文件和C提供appender。因此根据我的理解,类别的日志将存储到Console和sample.log 。如果我错了,请告诉我。

log4j.rootLogger = INFO,A1和各自的属性没用吗?

log4j.rootLogger = INFO,C,file:这一行是关于root logger的,我认为在我的情况下它没用,因为它是在最后一行定义的,并且没有在这里定义属性。

如果上述配置中有任何更改

,请任何机构确认我的理解并建议我

1 个答案:

答案 0 :(得分:0)

根记录器位于记录器层次结构的顶部。它在三个方面表现出色:

it always exists,
its level cannot be set to null
it cannot be retrieved by name.

rootLogger是所有appender的父亲。给定记录器的每个启用的日志记录请求都将转发到该记录器中的所有appender以及层次结构中较高的appender(包括rootLogger)。