CodeGym/Java Course/Modulo 3/Impostazione dei livelli di registrazione

Impostazione dei livelli di registrazione

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
  • Popolari
  • Nuovi
  • Vecchi
Devi avere effettuato l'accesso per lasciare un commento
Questa pagina non ha ancora commenti