Que signifie le seuil dans Log4J?

Salut à tous J’ai un log4j propriétés quelque chose comme le ci-dessous. Tout ce qui est enregistré dans TextProcessor.log est au-dessus du niveau WARN. Je ne comprends pas le seuil qui est défini ici pour déboguer. Quelqu’un peut-il expliquer ce que le seuil fait

log4j.logger.TextProcessor=warn,TextProcessor log4j.appender.TextProcessor=org.apache.log4j.RollingFileAppender log4j.appender.TextProcessor.File=C:/project/logs/TextProcessor.log log4j.appender.TextProcessor.MaxFileSize=10MB log4j.appender.TextProcessor.MaxBackupIndex=10 log4j.appender.TextProcessor.Threshold=debug log4j.appender.TextProcessor.layout=org.apache.log4j.PatternLayout log4j.appender.TextProcessor.layout.ConversionPattern=[%d] [%5p] (%F:%L) - %m%n 

Merci d’avance

Vous avez deux choses ici: un enregistreur et un appender. Malheureusement, vous avez choisi le même nom pour les deux, ce qui ne le rend pas très clair.

Le niveau minimum de l’enregistreur est configuré pour avertir, ce qui signifie que tout ce que vous enregistrez avec cet enregistreur qui n’a pas au moins le niveau d’avertissement sera ignoré.

Une fois qu’un message est accepté par l’enregistreur, il est envoyé à un ou plusieurs correspondants (à un fichier, à la console, à un serveur de messagerie, etc.). Chacun de ces appenders peut définir un seuil. Vous pouvez par exemple limiter les messages de la console aux erreurs, mais accepter les messages d’avertissement dans le fichier journal.

Le seuil est le deuxième filtre pour les messages à enregistrer

par exemple:

  log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger . . . log4j.appender.TextProcessor.Threshold=Error 

Si Logger est défini au niveau DEBUG et que l’appender Threshold est défini sur Error, alors avec l’appender, le TextProcessor only Error et les messages de gravité plus élevés seront enregistrés.

L’utilisation du seuil est que vous pouvez définir différents appender avec différents niveaux de seuil, par exemple dans l’exemple mentionné ci-dessus, vous pouvez également avoir InfoLogger avec la journalisation des messages de niveau Info activée

  log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger . . . log4j.appender.InfoLogger.Threshold=INFO 

Pour comprendre les niveaux, il existe des niveaux de journalisation inférieurs à log4j:

 FATAL: shows messages at a FATAL level only ERROR: Shows messages classified as ERROR and FATAL WARNING: Shows messages classified as WARNING, ERROR, and FATAL INFO: Shows messages classified as INFO, WARNING, ERROR, and FATAL DEBUG: Shows messages classified as DEBUG, INFO, WARNING, ERROR, and FATAL TRACE : Shows messages classified as TRACE,DEBUG, INFO, WARNING, ERROR, and FATAL ALL : Shows messages classified as TRACE,DEBUG, INFO, WARNING, ERROR, and FATAL OFF : No log messages display 

aller à l’ URL pour plus de détails

Les niveaux de journalisation sont TRACE , DEBUG , INFO , WARN , ERROR et FATAL . Vous serez en mesure de choisir quoi enregistrer à quel niveau dans le code en fonction de la gravité. Par exemple, vous aurez la possibilité de consigner les entrées et les sorties de méthodes, mais vous pouvez choisir de vous connecter au niveau DEBUG . Cela vous aidera à déboguer le code par défaut, il sera imprimé sur la console (l’appendeur de la console par défaut est activé). En allant en production, vous pouvez augmenter le seuil à ERROR et empêcher l’application d’imprimer des détails moins utiles sur la console ou les fichiers journaux.

Donnez-vous un mappage simple du fichier de configuration des propriétés au stream des messages de journal. (J’ai caché quelques lignes de config pour minimiser)

 log4j.rootLogger=ALL, stdout log4j.logger.com.xyz=INFO, file log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.file.Threshold=DEBUG ... log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.Threshold=WARN ... 

entrer la description de l'image ici

Pour comprendre ce que c’est, vous devez savoir que:

  • Les niveaux de journalisation augmentent lors de la récupération à l’extrême gauche: TRACE, DEBUG, INFO, WARN, ERROR et FATAL
  • Niveau minimum d’enregistrement que l’enregistreur accepte de l’application.
  • Niveau minimum de connexion sur Appender qui décide de ce qui sera écrit

** Il y a quelque chose de plus complexe concernant l’inheritance et l’additivité, mais vous devriez commencer par les choses simples et simples.