Несколько файлов журнала с log4j - PullRequest
7 голосов
/ 12 декабря 2011

Я создаю решение для своего журнала приложений, в котором есть различные типы журналов (пользователь, приложение и т. Д.), Которые хотят сохранить каждый тип журнала в отдельном файле.

Этовозможно с log4j или каким-то другим API?Как я могу это сделать?

Если вам интересно, я редактирую вопрос и ставлю коды, но не думаю, что они того стоят, они все еще очень простые.

Заранее спасибо.

Ответы [ 2 ]

23 голосов
/ 12 декабря 2011

Конечно, используйте другой пример FileAppenders из интернета:

log4j.rootLogger=DEBUG

# AdminFileAppender - used to log messages in the admin.log file.
log4j.appender.AdminFileAppender=org.apache.log4j.FileAppender

log4j.appender.AdminFileAppender.File=admin.log

log4j.appender.AdminFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.AdminFileAppender.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n

# ReportFileAppender - used to log messages in the report.log file.
log4j.appender.ReportFileAppender=org.apache.log4j.FileAppender

log4j.appender.ReportFileAppender.File=report.log

log4j.appender.ReportFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.ReportFileAppender.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n

log4j.logger.com.vaannila.admin=WARN,AdminFileAppender 
log4j.logger.com.vaannila.report=DEBUG,ReportFileAppender 

Теперь вы можете войти в admin.log Logger.getLogger("com.vaannila.admin").log("To admin log") и сообщить в журнал Logger.getLogger("com.vaannila.report").log("To report log")

2 голосов
/ 12 декабря 2011

Log4j обеспечивает регистраторы и приложения. Чтобы сделать это, нужно иметь Appender для каждого файла, который вы хотите. Они устанавливают соответствующий набор регистраторов, которые указывают на соответствующих приложений. Регистраторы обычно настраиваются с использованием имен пакетов. Если это сработает, код в пакете x перейдет в файл y, просто сделайте это. В противном случае создайте регистраторы для каждого выходного файла и попросите код выбрать соответствующий регистратор. Вы также можете иметь регистраторы и отправлять информацию нескольким аппендерам, чтобы вы могли настроить их соответствующим образом.

См. Сообщение Корифея о том, как это настроить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...