log4j - Livelli di registrazione

Il org.apache.log4j.Levellivelli. Puoi anche definire i tuoi livelli personalizzati sottoclassando il fileLevel classe.

Livello Descrizione
TUTTI Tutti i livelli, compresi i livelli personalizzati.
DEBUG Indica eventi informativi a grana fine più utili per eseguire il debug di un'applicazione.
INFORMAZIONI Indica messaggi informativi che evidenziano l'avanzamento dell'applicazione a livello grossolano.
AVVISARE Indica situazioni potenzialmente dannose.
ERRORE Indica eventi di errore che potrebbero ancora consentire all'applicazione di continuare l'esecuzione.
FATALE Indica eventi di errore molto gravi che presumibilmente porteranno l'applicazione a interrompersi.
OFF Il grado più alto possibile ed è destinato a disattivare la registrazione.
TRACCIA Designa eventi informativi a grana più fine rispetto a DEBUG.

Come funzionano i livelli?

Una richiesta di registro di livello p in un logger con livello q è enabledse p> = q. Questa regola è al centro di log4j. Si presuppone che i livelli siano ordinati. Per i livelli standard, abbiamo ALL <DEBUG <INFO <WARN <ERROR <FATAL <OFF.

L'esempio seguente mostra come filtrare tutti i nostri messaggi DEBUG e INFO. Questo programma utilizza il metodo di registrazione setLevel (Level.X) per impostare un livello di registrazione desiderato:

Questo esempio stamperà tutti i messaggi tranne Debug e Info:

import org.apache.log4j.*;

public class LogClass {
   private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);
   
   public static void main(String[] args) {
      log.setLevel(Level.WARN);

      log.trace("Trace Message!");
      log.debug("Debug Message!");
      log.info("Info Message!");
      log.warn("Warn Message!");
      log.error("Error Message!");
      log.fatal("Fatal Message!");
   }
}

Quando compili ed esegui il file LogClass programma, genererebbe il seguente risultato:

Warn Message!
Error Message!
Fatal Message!

Impostazione dei livelli utilizzando il file di configurazione

log4j fornisce un'impostazione del livello basata sul file di configurazione che ti libera dalla modifica del codice sorgente quando desideri modificare il livello di debug.

Di seguito è riportato un file di configurazione di esempio che eseguirà la stessa attività che abbiamo fatto utilizzando il log.setLevel(Level.WARN) metodo nell'esempio sopra.

# Define the root logger with appender file
log = /usr/home/log4j
log4j.rootLogger = WARN, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

Usiamo ora il nostro programma seguente:

import org.apache.log4j.*;

public class LogClass {

   private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);
   
   public static void main(String[] args) {
   
      log.trace("Trace Message!");
      log.debug("Debug Message!");
      log.info("Info Message!");
      log.warn("Warn Message!");
      log.error("Error Message!");
      log.fatal("Fatal Message!");
   }
}

Ora compila ed esegui il programma sopra e otterrai il seguente risultato in /usr/home/log4j/log.out file -

Warn Message!
Error Message!
Fatal Message!