2012-03-28 11 views
1

Ich versuche, alles, was in meiner Anwendung passiert, auf zwei Protokolle zu protokollieren: ein Protokoll wird alles haben, das andere wird nur INFO und aufwärts (also eine Datei wird alles haben, während die Andere haben nur Protokolle der Ebene INFO, WARN, ERROR usw.). Die erste Datei ist für die Entwickler gedacht, die zweite für die Tester.Protokollierung basierend auf Ebenen auf log4j

Kann mir hier jemand in die richtige Richtung zeigen? Ich las diesen Artikel über benutzerdefinierte Filter:

http://veerasundar.com/blog/2011/05/log4j-tutorial-writing-different-log-levels-in-different-log-files/

aber ich dachte, dass da alles, was ich ist eine Ebene von einer Datei ausschließen mag, dass es vielleicht eine einfache, einheimische Art und Weise, dies zu tun sein. Kann mir jemand ein Beispiel geben, wie ich das in der Eigenschaftendatei machen würde?

Danke.

Antwort

4

Zeigen Sie den Logger auf zwei Appender. Eine mit einem Schwellenwert, der auf Info festgelegt ist.

Good Example

von Beispiel kopiert ...

log4j.rootLogger=DEBUG, CA, FA 

# Console Appender 
log4j.appender.CA=org.apache.log4j.ConsoleAppender 
log4j.appender.CA.layout=org.apache.log4j.PatternLayout 
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 
      
# File Appender 
log4j.appender.FA=org.apache.log4j.FileAppender 
log4j.appender.FA.File=sample.log 
log4j.appender.FA.layout=org.apache.log4j.PatternLayout 
log4j.appender.FA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

# Set the logger level of File Appender to WARN 
log4j.appender.FA.Threshold = WARN 
+0

Schöne. Vielen Dank! – Nacht

+0

Quick Q, gibt es eine Möglichkeit, das Gleiche zu tun, aber für Klassen? Das heißt, protokollieren Sie nur die Protokolle, die von einem Logger stammen. – Nacht

+0

Richten Sie eine Protokollfunktion für eine bestimmte Klasse/ein bestimmtes Paket ein und senden Sie sie an einen bestimmten Appender. Wenn Sie diese Protokollierung nicht im Hauptbereich haben möchten, verwenden Sie den Root-Protokollierer nicht für den Rest der Anwendung. –

Verwandte Themen