Разный уровень ведения журнала между протоколами SFL4J и JDK

Я использую протоколирование JDK в качестве каркаса ведения журнала, а SLF4J - простой фасад. У меня есть несколько запросов, когда я регистрирую журналы другого уровня.

SLF4J имеет следующие уровни журнала

trace (the least serious)<br>
debug<br>
info<br>
warn<br>
error<br>
fatal (the most serious)<br>

В журнале JDK есть следующие уровни журнала

SEVERE (highest value)<br>
WARNING<br>
INFO<br>
CONFIG<br>
FINE<br>
FINER<br>
FINEST (lowest value)<br>

Если я хочу установить уровень ведения журнала на DEBUG, то этот уровень недоступен при ведении журнала JDK. Кто-нибудь может объяснить, как мы можем получить уровень регистрации DEBUG в этой ситуации. Нужно ли нам делать какие-либо дополнительные настройки для этой ситуации?

обновленный

это моя конфигурация файла свойств

handlers = com.amc.logging.handlers.DebugLogHandler

com.amc.logging.handlers.DebugLogHandler.pattern=c:/logs/debug_log.log
com.amc.logging.handlers.DebugLogHandler.level=FINE
com.amc.logging.handlers.DebugLogHandler.formatter=java.util.logging.SimpleFormatter
com.amc.logging.handlers.DebugLogHandler.append=true

Пожалуйста, дайте мне знать, где я ошибся.

Ответ 1

Я решил эту проблему с помощью следующей публикации.

slf4j протоколирование с помощью jdk - как включить отладку?

Для регистрации уровня DEBUG в SLF4J мы должны отобразить уровень FINE в java.util.logging.

И мы должны установить уровень ведения журнала по умолчанию как FINE или нижний уровень FINE. Это может быть достигнуто путем помещения строки ниже в файл конфигурации ведения журнала.

.level = FINE

Ответ 2

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

Чтобы назначить его корневому журналу, используйте

.handlers=com.amc.logging.handlers.DebugLogHandler

Чтобы назначить его регистратору в вашем приложении, определите журнал

com.company.application.package.level=FINE

И назначьте ему свой обработчик: com.company.application.package.handlers=com.amc.logging.handlers.DebugLogHandler

Кроме того, com.amc.logging.handlers.DebugLogHandler класс, который вы определили сами? Это в вашем классе? Потому что иначе я не думаю, что java.util.logging(JUL) узнает его.

Попробуйте использовать один из обработчиков с JUL:

handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler

И настройте их с уровнем, местоположением и форматом журнала, который вы хотите.

Вот пример файла logging.properties: https://tomcat.apache.org/tomcat-6.0-doc/logging.html#Using_java.util.logging_(default)

Он использует обработчики из реализации apache juli, но просто заменяет классы из JUL: https://docs.oracle.com/javase/7/docs/api/java/util/logging/package-summary.html