如何使用属性文件在一个记录器中使用多个相同类型的附加程序?

问题描述 投票:0回答:1

我有一个简单的问题,但我不知道。用Log4j2属性文件格式的单个记录器使用相同类型(RollingFile)的多个追加程序的正确语法是什么?

对于背景,我使用的是Karaf 4.2.7,它使用pax日志记录。我的日志记录配置文件为属性格式。

log4j2.appender.fileapp1.type = RollingRandomAccessFile
log4j2.appender.fileapp1.name = FileApp1
...

log4j2.appender.fileapp2.type = RollingRandomAccessFile
log4j2.appender.fileapp2.name = FileApp2
...

log4j2.logger.myloggername.name = com.acme
log4j2.logger.myloggername.appenderRef.RollingFile.ref = FileApp1, FileApp2

将两个追加程序都放在最后一个由逗号分隔的行上不起作用。如果我只有一个追加程序或另一个追加程序,它将起作用。我也尝试过

log4j2.logger.myloggername.appenderRef.RollingFile.ref = [FileApp1, FileApp2]

log4j2.logger.myloggername.appenderRef.RollingFile.ref = {FileApp1, FileApp2}

log4j2.logger.myloggername.appenderRef.RollingFile.ref = [{FileApp1}, {FileApp2}]

这些作品都没有。我似乎在网上找不到任何有关如何执行此操作的示例。

log4j2 apache-karaf
1个回答
1
投票

我引用了两个网页(谢谢)。

name=PropertiesConfig
property.filename_fileapp1 = ./logs/fileapp1.log
property.filename_fileapp2 = ./logs/fileapp2.log

appenders = console, fileapp1, fileapp2

appender.console.type = Console
appender.console.name = STDOUT
...

appender.fileapp1.type = RollingRandomAccessFile
appender.fileapp1.name = fileapp1_AppenderName
appender.fileapp1.fileName = ${filename_fileapp1}
appender.fileapp1.filePattern = ${filename_fileapp1}.%d{yyyy-MM-dd}.log
...

appender.fileapp2.type = RollingRandomAccessFile
appender.fileapp2.name = fileapp2_AppenderName
appender.fileapp2.fileName = ${filename_fileapp2}
appender.fileapp2.filePattern = ${filename_fileapp2}.%d{yyyy-MM-dd}.log
...


loggers = mylogger1
logger.mylogger1.name = com.jornathan.sample.log4j2PropertyTest
logger.mylogger1.level = info   

#keep this value for testing.
logger.mylogger1.additivity = true

#Here is what you need.
logger.mylogger1.appenderRefs = fileapp1Appender, fileapp2Appender   
logger.mylogger1.appenderRef.fileapp1Appender.ref = fileapp1_AppenderName
logger.mylogger1.appenderRef.fileapp2Appender.ref = fileapp2_AppenderName
© www.soinside.com 2019 - 2024. All rights reserved.