2010-05-04 16 views
9

Se si imposta il livello di registro su DEBUG, tutti i messaggi con livello di registro> = DEBUG verranno registrati/stampati. Ma posso impostare il livello di registro solo su DEBUG, in modo che vengano stampati i messaggi con livello di registro solo con DEBUG. Oppure puoi dare un intervallo come stampare tutti i messaggi il cui livello di registro è> = DEBUG ma ERRORE <?È possibile registrare solo messaggi di un livello con Log4J

+0

Io non la penso così, no. – skaffman

+0

Se si intende fare qualcosa contro il design originale, è possibile modificare il suo codice sorgente. Bene, perché non seguire il design? –

+0

State provando a capire la stessa cosa da molto tempo. – McTrafik

risposta

8

Forse è possibile utilizzare un LevelMatchFilter?

In alcune situazioni, è necessario scrivere registri su diverse uscite in base al livello. come può essere fatto semplicemente configurando Log4j? Ci sono alcuni metodi qui sotto.

http://wiki.apache.org/logging-log4j/LogToAppenderByLevel

1

Come detto Jarle è necessario utilizzare LevelMatchFilter. dimostrerò con un semplice esame:

log4j.rootLogger = WARN, admin 
log4j.appender.admin=org.apache.log4j.rolling.RollingFileAppender 
     log4j.appender.admin.rollingPolicy = org.apache.log4j.rolling.TimeBasedRollingPolicy 
     log4j.appender.admin.rollingPolicy.FileNamePattern = Files\\TestLevels-%d{dd-MM-yyy}.txt 
     log4j.appender.admin.layout = org.apache.log4j.PatternLayout 
     log4j.appender.admin.layout.ConversionPattern = Date: %d{dd-MM-yyyy} Time: %d{HH:mm:ss} Message [%m]%n 
     log4j.appender.admin.filter.01=org.apache.log4j.varia.LevelMatchFilter 
     log4j.appender.admin.filter.01.LevelToMatch=FATAL 
     log4j.appender.admin.filter.01.AcceptOnMatch=false 
     log4j.appender.admin.filter.02=org.apache.log4j.varia.LevelMatchFilter 
     log4j.appender.admin.filter.02.LevelToMatch=ERROR 
     log4j.appender.admin.filter.02.AcceptOnMatch=true 
     log4j.appender.admin.filter.03=org.apache.log4j.varia.LevelMatchFilter 
     log4j.appender.admin.filter.03.LevelToMatch=WARN 
     log4j.appender.admin.filter.03.AcceptOnMatch=false 

Nella mia fonte aggiungo solo ERRORE messaggi su file con il nome TestLevels.txt

Problemi correlati