15 votes

Niveau de journalisation différent entre SFL4J et le JDK.

J'utilise JDK logging comme cadre de journalisation et SLF4J comme simple façade. J'ai quelques questions lorsque j'enregistre des journaux de différents niveaux.

SLF4J a les niveaux d'enregistrement suivants

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

Les niveaux de journalisation du JDK sont les suivants

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

Si je veux définir le niveau du journal sur DEBUG, ce niveau n'est pas disponible dans le journal du JDK. Quelqu'un peut-il m'expliquer comment obtenir le niveau de journalisation DEBUG dans cette situation ? Devons-nous effectuer une configuration supplémentaire pour cette situation ?

Mise à jour de

voici la configuration de mon fichier de propriétés

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

S'il vous plaît, dites-moi où je me suis trompé.

0 votes

D s

0 votes

I

0 votes

T

8voto

Java-Seekar Points 1600

J'ai résolu ce problème avec l'aide du post ci-dessous.

slf4j logging avec jdk - comment activer le débogage ?

Pour la journalisation du niveau DEBUG dans SLF4J, nous devons mapper le niveau FINE dans java.util.logging.

Et nous devons définir le niveau de journalisation par défaut comme FINE ou un niveau inférieur de FINE. Ceci peut être réalisé en mettant la ligne suivante dans le fichier de configuration de la journalisation.

.level= FINE

0voto

Jibbyj Points 440

Un autre problème que vous rencontrez est que, bien que vous ayez défini un gestionnaire, vous ne l'avez affecté à aucun enregistreur.

Pour l'affecter au logger Root, utilisez

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

Pour l'attribuer à un enregistreur dans votre application, définissez l'enregistreur

com.company.application.package.level=FINE

Et assignez-lui votre gestionnaire : com.company.application.package.handlers=com.amc.logging.handlers.DebugLogHandler

Par ailleurs, com.amc.logging.handlers.DebugLogHandler est-elle une classe que vous avez définie vous-même ? Est-elle dans votre classpath ? Parce que sinon, je ne pense pas que java.util.logging (JUL) la reconnaîtra.

Essayez l'un des gestionnaires fournis avec JUL :

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

Et configurez-les avec le niveau, l'emplacement du journal et le format que vous souhaitez.

Voici un exemple de fichier logging.properties : https://tomcat.apache.org/tomcat-6.0-doc/logging.html#Using_java.util.logging_(par défaut)

Il utilise les gestionnaires de l'implémentation juli d'Apache, mais les remplace par des classes de JUL : https://docs.oracle.com/javase/7/docs/api/java/util/logging/package-summary.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X