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

cda*_*win 11 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
Run Code Online (Sandbox Code Playgroud)

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

小智 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}
Run Code Online (Sandbox Code Playgroud)

问候,


zal*_*niy 3

更深入地检查 log4j 中配置解析的实现,我意识到这只是简单的解析,没有实现类似功能的参考。所以,只需复制:)