В log4j
большинство (если не все) аппендеры расширяют AppenderSkeleton
, что обеспечивает setThreshold(Priority)
метод для установки минимального «уровня», на который должно быть установлено сообщение, чтобы аппендер мог его где-то зарегистрировать.
Я хочу записывать сообщения в разные приложения, основываясь на точном уровне / приоритете сообщения.
Например, я хочу, чтобы сообщения отладки записывались на ConsoleAppender
, но нигде больше. Я хочу, чтобы сообщения INFO регистрировались на FileAppender
и больше нигде. Я хочу, чтобы сообщения об ОШИБКАХ регистрировались на JMSAppender
и больше нигде.
Проблема заключается в этом setThreshold(Priority)
методе, который устанавливает «минимальный порог», необходимый для регистрации сообщения.
Конечно, я мог бы установить для порога ConsoleAppender
значение DEBUG, но, поскольку сообщения INFO и ERROR "выше", чем сообщения DEBUG, я также получу сообщения INFO и ERROR, отправленные в ConsoleAppender.
Существуют ли способы или способы настройки "уровней" / приоритетов приложения точно или этот минимальный порог является моим единственным выходом?
Редактирование с использованием LevelMatchFilter :
Это шаг в правильном направлении?
LevelMatchFilter filter = new LevelMatchFilter();
filter.setLevelToMatch(Level.DEBUG.toString());
consoleAppender.addFilter(filter);
Выполнит ли приведенный выше фрагмент кода работу по обеспечению того, чтобы ConsoleAppender
регистрировал ОТЛАДКИ и только ОТЛАДКИ?