Cosa significa soglia in Log4J?

Ciao a tutti Ho una proprietà di log4j qualcosa come il seguente. Tutto ciò che è registrato in TextProcessor.log è qualcosa sopra il livello WARN. Non capisco la soglia impostata qui per eseguire il debug. Qualcuno può spiegare cosa fa la soglia

log4j.logger.TextProcessor=warn,TextProcessor log4j.appender.TextProcessor=org.apache.log4j.RollingFileAppender log4j.appender.TextProcessor.File=C:/project/logs/TextProcessor.log log4j.appender.TextProcessor.MaxFileSize=10MB log4j.appender.TextProcessor.MaxBackupIndex=10 log4j.appender.TextProcessor.Threshold=debug log4j.appender.TextProcessor.layout=org.apache.log4j.PatternLayout log4j.appender.TextProcessor.layout.ConversionPattern=[%d] [%5p] (%F:%L) - %m%n 

Grazie in anticipo

Hai due cose qui: un logger e un appender. Sfortunatamente, hai scelto lo stesso nome per entrambi, il che non lo rende molto chiaro.

Il livello minimo del logger è impostato su warn, il che significa che tutto ciò che si registra con questo logger che non ha almeno il livello di avviso verrà ignorato.

Una volta che un messaggio viene accettato dal registratore, viene inviato a uno o più appendici (a un file, alla console, a un server di posta, ecc.). Ognuna di queste appendici può definire una soglia. Ad esempio, è ansible limitare i messaggi nella console agli errori, ma accettare i messaggi di avviso nel file di registro.

La soglia è il secondo filtro per i messaggi da registrare

per esempio:

  log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger . . . log4j.appender.TextProcessor.Threshold=Error 

se Logger è impostato a livello DEBUG e la soglia dell’appender è impostata su Errore, quindi con l’appender TextProcessor verranno registrati solo i messaggi di errore e di gravità superiore.

L’uso della soglia è, è ansible definire diversi appender con diversi livelli di soglia, ad esempio nell’esempio sopra citato si può anche avere InfoLogger con la registrazione dei messaggi a livello Info abilitata

  log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger . . . log4j.appender.InfoLogger.Threshold=INFO 

Per comprendere i livelli, ci sono i seguenti livelli di registrazione in log4j:

 FATAL: shows messages at a FATAL level only ERROR: Shows messages classified as ERROR and FATAL WARNING: Shows messages classified as WARNING, ERROR, and FATAL INFO: Shows messages classified as INFO, WARNING, ERROR, and FATAL DEBUG: Shows messages classified as DEBUG, INFO, WARNING, ERROR, and FATAL TRACE : Shows messages classified as TRACE,DEBUG, INFO, WARNING, ERROR, and FATAL ALL : Shows messages classified as TRACE,DEBUG, INFO, WARNING, ERROR, and FATAL OFF : No log messages display 

vai all’URL per maggiori dettagli

I livelli di registrazione sono TRACE , DEBUG , INFO , WARN , ERROR e FATAL . Sarai in grado di scegliere cosa registrare a quale livello del codice dipende dalla gravità. Ad esempio, avrai la possibilità di registrare i metodi di entrata e di uscita ma puoi scegliere di accedere al livello DEBUG . Ciò ti aiuterà a eseguire il debug del codice, poiché di default verrà stampato sulla console (l’appender della console di default è attivo). Mentre si va in produzione è ansible aumentare la soglia in ERROR e impedire all’applicazione di stampare dettagli non così utili sulla console o sui file di registro.

Fornisci un semplice mapping dal file di configurazione delle proprietà al stream dei messaggi di registro. (Ho nascosto alcune righe di configurazione per ridurre al minimo)

 log4j.rootLogger=ALL, stdout log4j.logger.com.xyz=INFO, file log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.file.Threshold=DEBUG ... log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.Threshold=WARN ... 

inserisci la descrizione dell'immagine qui

Per capire di cosa si tratta, dovresti sapere che:

  • I livelli di registrazione aumentano quando si recupera all’estrema sinistra: TRACE, DEBUG, INFO, WARN, ERROR e FATAL
  • Registrazione del livello minimo che il logger accetta dall’applicazione.
  • Livello minimo di registrazione su appender che decide cosa verrà scritto

** Ci sono alcune cose più complesse riguardo l’ereditarietà e l’additività, ma prima dovresti iniziare da cose semplici e di base.