Разный уровень ведения журнала между протоколами 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