2014-02-13 6 views
1

У меня есть приложение для передачи файлов, которое требует записи определенных событий в конкретный файл журнала, а все события переходят в общий файл журнала. Например:Специализированный журнал log4j

File comes in from source A, events get written to file.log 
File comes in from source B, events get written to file.log and B_file.log 
File comes in from source C, events get written to file.log 
... 

Я думал о создании «BLOG» Appender в моем log4j конфигурации, и в моей группе приложений все мои исходные B файлов/каталогов в одной конфигурации и назначения «BLOG» к нему, и в проверке кода каждый раз, когда мы передаем файлы, если у конфигурации есть приложение, если это так, получите его и вызовите doAppend.

Однако, если я добавлю приложение в конфигурацию log4j, не заставит ли он получать все события? Могу ли я создать приложение, не назначая его root в конфиге, но все же получаю его программно? Если это так, означает ли это каждый раз, когда я хочу отправить событие в B_file.log, мне нужно получить приложение, добавить его в root, вызвать doAppend, а затем удалить приложение?

Есть ли более чистый способ сделать это?

Заранее благодарен!

ответ

0

Я думаю, что ваш вопрос может быть решен путем применения решения этого вопроса:

log4j: Log output of a specific class to a specific appender

и добавление вызовов в пользовательском Appender также написать на основной Appender.

Надеюсь, что это поможет

Смежные вопросы