Как использовать несколько приложений одного типа с одним регистратором, используя файл свойств? - PullRequest
0 голосов
/ 23 октября 2019

У меня есть простой вопрос, но я не могу понять. Каков правильный синтаксис для использования нескольких приложений одного и того же типа (RollingFile) с одним регистратором в формате файла свойств Log4j2?

Для фона я использую 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

Помещение обоих дополнений в последнюю строку, разделенных запятой, не работает. Это работает, если у меня есть только один appender или другой. Я также попробовал

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

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

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

Ни одна из этих работ. Я не могу найти какие-либо примеры в Интернете, как это сделать.

1 Ответ

1 голос
/ 23 октября 2019

Я ссылаюсь на две веб-страницы (спасибо).

Добавьте и определите "~ s ".

appender s , appenderRef s ,

Это уведомление для определения того, что будет дальше.

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
...