CodeGym /Corsi /All lectures for IT purposes /Impostazione dei livelli di registrazione

Impostazione dei livelli di registrazione

All lectures for IT purposes
Livello 1, Lezione 331
Disponibile

4.1 Elenco dei livelli di registrazione

Hai scritto il tuo programma, lo hai caricato sul server e poi inizi subito ad avere domande:

  • Come assicurarsi che debug()il metodo non funzioni mentre si lavora in production?
  • Ci sono troppe informazioni nei log, vuoi lasciare solo messaggi di errore?
  • Come visualizzare un registro dettagliato per una parte dell'applicazione?

Naturalmente, i creatori dei registri hanno affrontato la stessa cosa decenni fa. Non ti dirò come è stato risolto questo problema nel linguaggio C, ma nel linguaggio Java è stato risolto magnificamente.

Il registro filtra i dati prima di scrivere le informazioni nel file . È possibile ridurre/aumentare molto rapidamente i dettagli del registro impostando il livello di registrazione. Questi livelli sono descritti nella tabella seguente:

Livello Nota
1 TUTTO Registra tutti i messaggi
2 TRACCIA Piccolo messaggio durante il debug
3 DEBUG Messaggi importanti per il debug
4 INFORMAZIONI Messaggi semplici
5 AVVISARE Scrivi solo fatale, errore e avviso
6 ERRORE Scrivi solo errori ed errori fatali
7 FATALE Scrivi solo errori fatali
8 SPENTO Non scrivere messaggi nel registro

Questi livelli vengono utilizzati durante il filtraggio dei messaggi. Se si imposta il livello di registrazione su WARN, tutti i messaggi meno importanti di WARNverranno eliminati: TRACE, DEBUG, INFO. Se imposti il ​​livello di filtraggio su FATAL, allora even ERROR.

Esistono altri due livelli di gravità che vengono utilizzati nel filtraggio: questo OFF(elimina tutti i messaggi) e ALL- scrivi tutti i messaggi (non elimina nulla).

4.2 Esempio di configurazione del registro

Diamo un'occhiata a un semplice esempio di configurazione del registro. Per fare ciò, abbiamo bisogno del file log4j.properties, che può essere posizionato nella cartella delle risorse. Aggiungiamo il seguente contenuto ad esso:

# Root logger option
log4j.rootLogger=WARN, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}

Qui nella primissima riga impostiamo il livello di registrazione - WARN. Ciò significa che i messaggi scritti nel logger con lo stato DEBUGverranno INFOignorati.

  • Specifica quale tipo di appender useremo -ConsoleAppender
  • Specifica dove scriveremo il registro -System.out
  • Impostiamo la classe che controllerà il formato di registrazione -PatternLayout
  • Imposta il formato di registrazione per tutti i messaggi: data e ora

4.3 Errori di registrazione comuni

E un altro punto importante: errori popolari nella registrazione. Non ci sono molte opzioni per fare qualcosa, ma si possono identificare diversi errori comuni:

  1. Troppa registrazione . Non dovresti registrare ogni passaggio, che in teoria può essere importante. C'è una regola: i log possono caricare le prestazioni di non più del 10% . Altrimenti ci saranno problemi di prestazioni.
  2. Registrazione di tutti i dati in un unico file . Ciò renderà molto difficile la lettura/scrittura a un certo punto, per non parlare del fatto che ci sono limiti di dimensione dei file su alcuni sistemi.
  3. Utilizzo di livelli di registrazione errati . Ogni livello di registrazione ha confini chiari e dovrebbero essere rispettati. Se il confine è vago, puoi concordare quale livello utilizzare.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION