Как войти в журнал приложений и журнал безопасности из одного приложения - PullRequest
0 голосов
/ 17 июня 2011

У меня есть приложение, которое должно регистрировать «сообщения журнала приложения» для одного приложения и «сообщения журнала безопасности» для другого приложения (сообщения журнала безопасности не могут отображаться в журнале приложения).Я думал настроить мои регистраторы так:

Logger appLogger = Logger.getLogger("app." + myClassName);
Logger securityLogger = Logger.getLogger("security." + myClassName);

И настроить мою конфигурацию log4j так:

log4j.logger.app = DEBUG, applicationLogAppender
log4j.additivity.app = false 

log4j.logger.security = DEBUG, securityLogAppender
log4j.additivity.security = false 

Каков наилучший способ настроить log4j, чтобы сделать это? Я полагаю, что мое решение будет работать и по-прежнему дает разработчикам возможность включать и отключать ведение журнала для определенного пакета / класса, если они помнят префикс имени пакета / класса с помощью «app».или «безопасность», но мне было интересно, есть ли лучший способ сделать это.

ПРИМЕЧАНИЕ. Решение должно работать для log4j и log4cxx.

1 Ответ

0 голосов
/ 10 сентября 2011

Два года назад мне дали такую ​​же задачу, и я предложил именно это, только наши префиксы логгера назывались «admin» и «debug». По вашему / моему предложению создается два независимых регистратора верхнего уровня, чуть ниже корневого регистратора.

Я не думаю, что log4j / cxx позволяет встроенному корневому логгеру не настраиваться. Чтобы заблокировать запись в журнале регистрации событий, которые не следуют вашей политике именования, я установил для уровня журнала значение «ВЫКЛ».

...