Различно ниво на регистриране между 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/ въпроси/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 logging с jdk – как да активирам отстраняване на грешки?

За регистриране на ниво DEBUG в SLF4J трябва да картографираме ниво FINE в java.util.logging.

И ние трябва да зададем нивото на регистриране по подразбиране като FINE или по-ниско ниво на FINE. Това може да се постигне чрез поставяне на реда по-долу в конфигурационния файл за регистриране.

.level= ДОБРЕ

person Java-Seekar    schedule 04.04.2013

Друг проблем, който имате, е, че въпреки че сте дефинирали манипулатор, не сте го присвоили на никакви регистратори.

За да го присвоите на root регистратора, използвайте

.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 клас, който сте дефинирали сами? Във вашия classpath ли е? Защото иначе не мисля, че 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)

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

person Jibby    schedule 07.06.2015