Log4j:如何为多个appender定义公共布局和ConversionPattern

时间:2011-11-08 16:47:22

标签: java logging log4j

我的log4j配置中有多个appender,我想知道是否可以为所有这些定义一次布局和转换模式。 即我有

log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %-5p %c %x - %m%n

log4j.appender.FA=org.apache.log4j.RollingFileAppender
log4j.appender.FA.MaxBackupIndex=0
log4j.appender.FA.MaxFileSize=100Mb
log4j.appender.FA.File=log/my.log
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %-5p %c %x - %m%n

我想知道是否以及如何定义每个appender配置的最后两行只有一次。

2 个答案:

答案 0 :(得分:20)

不确定它是否正是您想要的,但使用以下内容您可以在一个地方定义布局:

PATTERN = %-4r [%t] %-5p %c %x - %m%n

log4j.rootLogger=info, A
log4j.logger.FILE = info, FILE

log4j.appender.A=org.apache.log4j.ConsoleAppender
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=${PATTERN}

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=log.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=${PATTERN}

此致

答案 1 :(得分:3)

在log4j中更深入地检查配置解析的实现我已经意识到它只是简单的解析而没有实现类似功能的引用。 所以,只需复制:)