Wie gesagt, Jarle, müssen Sie LevelMatchFilter . Ich werde es anhand 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 meinem Quelltext füge ich nur ERROR Nachrichten in Datei mit dem Namen TestLevels.txt
0 Stimmen
Wenn Sie vorhaben, etwas gegen den ursprünglichen Entwurf zu tun, können Sie den Quellcode ändern. Warum also nicht dem Entwurf folgen?
1 Stimmen
Ich versuche schon seit langem, das Gleiche herauszufinden.
2 Stimmen
Dies ist sehr nützlich. Beispiel: System.out erhält nur Debug. System.err erhält Error und Fatal. Sonst werden alle Fehler doppelt angezeigt. Das ist ziemlich ärgerlich.