Ordre de la hiérarchie de journalisation log4j


170

Quelle est la hiérarchie de la journalisation log4j?

DEBUG
INFO
WARN
ERROR
FATAL

Lequel fournit la journalisation la plus élevée qui serait utile pour résoudre les problèmes? Quelqu'un peut-il indiquer l'ordre ou la hiérarchie dans lequel la journalisation a lieu du plus haut au plus bas? Merci!

Réponses:


294

Ce tableau peut vous être utile:

Niveau de journal

En descendant la première colonne, vous verrez comment le journal fonctionne à chaque niveau. c'est-à-dire que pour WARN , ( FATAL, ERROR et WARN ) sera visible. Pour OFF , rien ne sera visible.


Les termes visibilité et élément ne sont pas explicites. Je vois que la documentation officielle est également vague à ce sujet. La méthode de sortie tels que error, info, debug, etc. , de l'enregistreur attribue un niveau de priorité / gravité au message de journalisation. Si la journalisation prend réellement effet (le message sera visible) dépend du niveau de journalisation effectif de l'enregistreur utilisé.
Wolf

1
lien cassé. s'il vous plaît réparer ou supprimer
yurin

Bien que cela réponde à la question (c'est juste demander "l'ordre de la hiérarchie"), j'ai finalement voté contre votre mauvaise terminologie: descendre , "visibilité" fonctionne , item . N'avez-vous pas souhaité expliquer comment la configuration de l'enregistreur affecte la journalisation réelle (transmission des événements du journal)? Veuillez envisager une autre mise à jour. BTW: le tableau dans la documentation officielle (à la fin de la section) diffère dans le traitement OFFet ALL, eh bien, après avoir lu une partie de la source (ne pas trouver de cas particuliers) je doute que leur tableau soit correct.
Wolf

Merci Wolf, j'ai mis à jour la réponse en fonction de vos commentaires.
nxhoaf

2
Je pense que c'est une excellente visualisation des niveaux de journal et des types de messages de journal attendus qui seraient générés pour un paramètre de niveau de journalisation spécifique. Ma seule suggestion pourrait être d'avoir des couleurs de ligne alternées pour guider le spectateur que le graphique doit être interprété par ligne plutôt que par colonne. (c'est-à-dire que les lignes représentent les niveaux de journalisation et les colonnes représentent les types de messages de journal qui seraient présents)
Larry Hector

149

Utilisez la force, lisez la source (extrait de la classe Priorityand Levelcompilée, le niveau TRACE a été introduit dans la version 1.2.12):

public final static int OFF_INT = Integer.MAX_VALUE;
public final static int FATAL_INT = 50000;
public final static int ERROR_INT = 40000;
public final static int WARN_INT  = 30000;
public final static int INFO_INT  = 20000;
public final static int DEBUG_INT = 10000;
public static final int TRACE_INT = 5000; 
public final static int ALL_INT = Integer.MIN_VALUE; 

ou l' API log4j pour la Levelclasse , ce qui le rend assez clair.

Lorsque la bibliothèque décide d'imprimer une certaine instruction ou non, elle calcule le niveau effectif de l' Loggerobjet responsable (en fonction de la configuration) et le compare avec le LogEventniveau de (dépend de la méthode utilisée dans le code - trace / debug / ... / fatal ). Si LogEventle niveau de s est supérieur ou égal au Loggerniveau de s, le LogEventest envoyé aux appendeurs - «imprimés». Au fond, tout se résume à une comparaison entière et c'est là que ces constantes entrent en action.


56
OFF
FATAL
ERROR
WARN
INFO
DEBUG
TRACE
ALL

1
Ceci est en conflit avec les informations fournies sur tutorialspoint.com/log4j/log4j_logging_levels.htm Laquelle est vraie ???
Mike

1
vérifiez le code où se trouvent les variables entières pour la preuve docjar.com/html/api/org/apache/log4j/Level.java.html
the.malkolm

4
à votre lien, il a dit que "ALL <DEBUG <INFO <WARN <ERROR <FATAL <OFF" et c'est parfaitement pareil que je l'ai dit
the.malkolm

6
Diagramme de Venn OFF () ALL (TRACE (DEBUG (INFO (WARN (ERROR (FATAL))))))
Hernán Eche

@Mike sur les niveaux de journalisation log4j, ils utilisent l'ordre alphabétique dans le premier tableau . À l'exception des disparus trace, ils déclarent plus tard correctement que ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF(où <signifie moins important)
Wolf

24

La hiérarchie des niveaux de journalisation log4j est la suivante dans l'ordre du plus élevé au plus bas:

  • TRACE
  • DÉBOGUER
  • INFO
  • PRÉVENIR
  • ERREUR
  • FATAL
  • DE

Le niveau de journalisation TRACE fournit la journalisation la plus élevée, ce qui serait utile pour résoudre les problèmes. Le niveau de journalisation DEBUG est également très utile pour résoudre les problèmes.

Vous pouvez également consulter ce lien pour plus d'informations sur les niveaux de journalisation: https://logging.apache.org/log4j/2.0/manual/architecture.html


12

[Pris à partir de http://javarevisited.blogspot.com/2011/05/top-10-tips-on-logging-in-java.html]

DEBUG est le niveau de journalisation java restreint le plus bas et nous devons écrire tout ce dont nous avons besoin pour déboguer une application, ce mode de journalisation java ne doit être utilisé que sur l'environnement de développement et de test et ne doit pas être utilisé dans l'environnement de production.

INFO est plus restreint que le niveau de journalisation DEBUG java et nous devons enregistrer les messages à des fins informatives telles que le démarrage du serveur, les messages entrants, les messages sortants, etc. dans la journalisation de niveau INFO en java.

WARN est plus restreint que le niveau de journalisation INFO java et est utilisé pour enregistrer le type d'avertissement des messages, par exemple la connexion perdue entre le client et le serveur. Connexion à la base de données perdue, Socket atteignant sa limite. Ces messages et le niveau de journalisation java sont presque importants car vous pouvez configurer une alerte sur ces messages de journalisation en java et laisser votre équipe de support surveiller la santé de votre application java et réagir à ces messages d'avertissement. Dans Résumé, le niveau WARN est utilisé pour consigner le message d'avertissement pour la journalisation en Java.

ERROR est le niveau de journalisation java le plus restreint que WARN et utilisé pour consigner les erreurs et les exceptions, vous pouvez également configurer une alerte sur ce niveau de journalisation java et alerter l'équipe de surveillance pour réagir à ces messages. L'ERREUR est grave pour la journalisation en Java et vous devez toujours l'imprimer.

Le niveau de journalisation FATAL java désigne des événements d'erreur très graves qui conduiront vraisemblablement l'application à abandonner. Après cela, votre application se bloque et s'arrête principalement.

Le niveau de journalisation OFF java a le rang le plus élevé possible et est destiné à désactiver la journalisation en Java.


4

Ordre hiérarchique

  1. TOUT
  2. TRACE
  3. DÉBOGUER
  4. INFO
  5. PRÉVENIR
  6. ERREUR
  7. FATAL
  8. DE
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.