Ordine della gerarchia di registrazione log4j


169

Qual è la gerarchia della registrazione log4j?

DEBUG
INFO
WARN
ERROR
FATAL

Quale fornisce la registrazione più elevata che sarebbe utile per risolvere i problemi? Qualcuno può fornire l'ordine o la gerarchia in cui la registrazione ha luogo dal più alto al più basso? Grazie!

Risposte:


292

Questa tabella potrebbe esserti utile:

Livello di registro

Scendendo nella prima colonna, vedrai come funziona il registro in ogni livello. cioè per WARN , ( FATAL, ERROR e WARN ) saranno visibili. Per OFF , nulla sarà visibile.


I termini visibilità e oggetto non sono autoesplicativi. Vedo che anche la documentazione ufficiale è vaga al riguardo. Il metodo di produzione come error, info, debug, ecc dei cessionari logger un livello di priorità / gravità al messaggio di registrazione. Se la registrazione ha davvero effetto (il messaggio sarà visibile) dipende dal livello di registrazione effettivo del logger in uso.
Lupo,

1
collegamento interrotto. correggi o rimuovi
yurin

Anche se questo risponde alla domanda (che sta solo chiedendo "l'ordine gerarchico"), ho finalmente declassato per la tua scarsa terminologia: scendendo , "visibilità" funziona , oggetto . Non si desidera spiegare in che modo la configurazione del logger influisce sulla registrazione effettiva (passando eventi del registro)? Si prega di considerare un altro aggiornamento. A proposito: la tabella nella documentazione ufficiale (alla fine della sezione) differisce nel trattamento OFFe ALL, bene, dopo aver letto alcuni dei sorgenti (non trovando casi speciali) dubito che la loro tabella sia corretta.
Lupo,

Grazie Lupo, ho aggiornato la risposta in base ai tuoi commenti.
nxhoaf,

2
Penso che questa sia un'eccellente visualizzazione dei livelli di registro e dei tipi di messaggi di registro previsti che verrebbero emessi per un'impostazione specifica del livello di logger. Il mio unico suggerimento potrebbe essere quello di avere colori di riga alternati per guidare lo spettatore che il grafico dovrebbe essere interpretato per riga anziché per colonna. (ovvero le righe rappresentano i livelli del logger e le colonne rappresentano i tipi di messaggi di registro che sarebbero presenti)
Larry Hector,

149

Usa la forza, leggi la fonte (estratto dalla classe Prioritye Levelcompilata, il livello TRACE è stato introdotto nella versione 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; 

o l' API log4j per la Levelclasse , il che lo rende abbastanza chiaro.

Quando la libreria decide se stampare o meno una determinata istruzione, calcola il livello effettivo Loggerdell'oggetto responsabile (in base alla configurazione) e lo confronta con il LogEventlivello (dipende dal metodo utilizzato nel codice - trace / debug / ... / fatale ). Se LogEventil livello è maggiore o uguale al Loggerlivello, LogEventviene inviato agli appender - "stampati". Alla base, tutto si riduce a un confronto intero ed è qui che queste costanti entrano in azione.


56
OFF
FATAL
ERROR
WARN
INFO
DEBUG
TRACE
ALL

1
Ciò è in conflitto con le informazioni fornite su tutorialspoint.com/log4j/log4j_logging_levels.htm Quale è vero ???
Mike,

1
controlla il codice dove sono le variabili intere per proof docjar.com/html/api/org/apache/log4j/Level.java.html
the.malkolm

4
al tuo link diceva che "ALL <DEBUG <INFO <WARN <ERROR <FATAL <OFF" ed è
esattamente

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

@Mike su log4j I livelli di registrazione usano l' ordine alfabetico nella prima tabella . Fatta eccezione per i dispersi trace, in seguito affermano correttamente che ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF(in cui <significa meno importante)
Wolf

24

La gerarchia dei livelli di registrazione log4j è la seguente nell'ordine dal più alto al più basso:

  • TRACCIA
  • DEBUG
  • INFORMAZIONI
  • AVVISARE
  • ERRORE
  • FATALE
  • OFF

Il livello di registro TRACE offre la registrazione più elevata che sarebbe utile per risolvere i problemi. Il livello di registro DEBUG è anche molto utile per risolvere i problemi.

È inoltre possibile fare riferimento a questo collegamento per ulteriori informazioni sui livelli di registro: https://logging.apache.org/log4j/2.0/manual/architecture.html


12

[Tratto da http://javarevisited.blogspot.com/2011/05/top-10-tips-on-logging-in-java.html]

DEBUG è il livello di registrazione java più limitato e dovremmo scrivere tutto il necessario per eseguire il debug di un'applicazione, questa modalità di registrazione java deve essere utilizzata solo in ambiente di sviluppo e test e non deve essere utilizzata in ambiente di produzione.

INFO è più limitato del livello di registrazione java DEBUG e dovremmo registrare i messaggi a scopo informativo come il server è stato avviato, i messaggi in arrivo, i messaggi in uscita ecc. Nella registrazione a livello INFO in java.

WARN è più limitato del livello di registrazione java INFO e viene utilizzato per registrare i messaggi di avviso, ad es. Connessione persa tra client e server. Connessione al database persa, Socket che raggiunge il limite. Questi messaggi e il livello di registrazione Java sono quasi importanti perché è possibile impostare un avviso su questi messaggi di registrazione in Java e consentire al team di supporto di monitorare lo stato della propria applicazione Java e reagire su questi messaggi di avviso. Nel Riepilogo il livello WARN viene utilizzato per registrare un messaggio di avviso per l'accesso a Java.

ERRORE è il livello di registrazione Java più limitato rispetto a WARN e utilizzato per registrare errori ed eccezioni, è inoltre possibile impostare un avviso su questo livello di registrazione Java e avvisare il team di monitoraggio per reagire a questi messaggi. ERRORE è serio per la registrazione in Java e dovresti sempre stamparlo.

Il livello di registrazione java FATAL indica eventi di errore molto gravi che presumibilmente determineranno l'interruzione dell'applicazione. Successivamente, l'applicazione si arresta in modo anomalo e si interrompe.

OFF Il livello di registrazione java ha il grado più alto possibile ed è destinato a disattivare la registrazione in Java.


4

Ordine gerarchico

  1. TUTTI
  2. TRACCIA
  3. DEBUG
  4. INFORMAZIONI
  5. AVVISARE
  6. ERRORE
  7. FATALE
  8. OFF
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.