2010-05-04 7 views
9

Wenn ich die Loglevel auf DEBUG setze, werden alle Meldungen mit Loglevel> = DEBUG geloggt/gedruckt. Aber kann ich Protokolllevel nur auf DEBUG setzen, so dass Nachrichten mit Protokolllevel nur mit DEBUG gedruckt werden. Oder kann ein Bereich wie print alle Nachrichten geben, deren Protokolllevel> = DEBUG aber < FEHLER ist?Ist es möglich nur Logmeldungen mit Log4J zu protokollieren

+0

Ich glaube nicht Datei so, nein. – skaffman

+0

Wenn Sie etwas gegen das ursprüngliche Design unternehmen möchten, können Sie den Quellcode ändern. Nun, warum nicht dem Design folgen? –

+0

Ich habe versucht, das gleiche für eine lange Zeit herauszufinden. – McTrafik

Antwort

8

Vielleicht können Sie einen LevelMatchFilter verwenden?

In einigen Situationen müssen Sie Protokolle auf verschiedenen Ausgängen entsprechend der Ebene schreiben. Wie kann es durch die Konfiguration von Log4j einfach gemacht werden? Es gibt einige Methoden unten.

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

1

Wie gesagt Jarle Sie LevelMatchFilter verwenden. Ich werde es mit einer einfachen Prüfung demonstrieren:

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 

In meiner Quelle ich anhängen nur ERROR Nachrichten mit Namen TestLevels.txt

Verwandte Themen