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

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


person Java-Seekar    schedule 04.04.2013    source источник
comment
Дубликат? stackoverflow.com/ questions / 4278438 /   -  person hd1    schedule 04.04.2013
comment
Я изменил уровень журнала на FINE, о котором говорилось в приведенной выше ссылке, но все же я не получаю журнал уровня DEBUG.   -  person Java-Seekar    schedule 04.04.2013
comment
Решение, которое вы дали, не помогло мне решить мою проблему. Я обновил свой пост, указав конфигурацию файла моих свойств.   -  person Java-Seekar    schedule 04.04.2013
comment
Мое решение любой проблемы с журналированием JDK - использовать log4j.   -  person hd1    schedule 04.04.2013


Ответы (2)


Я решил эту проблему с помощью сообщения ниже.

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

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

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

.level = ТОЧНО

person Java-Seekar    schedule 04.04.2013

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

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

.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

person Jibby    schedule 07.06.2015