Frage zu Log4J

Chris2610

Grünschnabel
Hallo,
ich hätte 2 kurze Fragen zu Log4J.

Und zwar sieht meine log4j.properties folgendermaßen aus:

Code:
log4j.rootLogger=DEBUG, A1

log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.Datei=org.apache.log4j.FileAppender
log4j.appender.Datei.File=qqq.log
log4j.appender.Datei.layout=org.apache.log4j.PatternLayout

# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

# Print only messages of level WARN or above in the package com.foo.
log4j.logger.datenbank=ERROR

Den Logger lege ich z.B. in meiner Verbindungsklasse so an:
Code:
private static Logger logger = Logger.getLogger(Verbindung.class);

Frage1: Wo finde ich die Datei qqq.log? Bzw. wird bei diesem Code überhaupt in die Datei geschrieben?

Frage2: Ich habe in der Properties 2 Appender definiert. Wie kann ich es machen, dass beide Logger/Appender benutzt werden? Ich möchte nämlich einmal die Mledungen auf der Konsole und gleichzeitig auch in der Datei sehen. Ist so etwas möglich?

Schöne Grüße
Chris
 
Hi!
Nein, afaik wird bei diesem Setup keine Datei geschrieben, weil du den entsprechenden Appender zwar definierst, aber nicht verwendest. Sieh dir mal in der Doku an, wie die Logging-Einstellungen funktionieren.
 
Oh, sorry, ich Tünnes. Hab das Problem gefunden, hatte den Appender oben gar nicht angegeben.

So sieht die Properties-Datei nun aus:
Code:
log4j.rootLogger=DEBUG, A1, Datei

log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.Datei=org.apache.log4j.RollingFileAppender
log4j.appender.Datei.File=d:/qqq.log
log4j.appender.Datei.MaxFileSize=100KB
log4j.appender.Datei.MaxBackupIndex=2
log4j.appender.Datei.layout=org.apache.log4j.PatternLayout

# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.Datei.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

# Print only messages of level WARN or above in the package com.foo.
log4j.logger.datenbank=ERROR

So werden ja nun alle ERROR Meldungen geloggt. Habe jetzt mal verschiedene Beiträge durchforstet, aber leider nicht das richtige gefunden. Kann ich einem Appender auch irgendwie ein Status o.Ä. übergeben? Ich hätte nämlich gerne, dass auf der Konsole alle Meldungen ausgegeben werden, aber in der log-Datei nur die Error-Meldungen. Habe ich diesen Punkt überlesen, oder geht so etwas nicht?
 
Hallo,

hab da mal eine Frage zum DOMConfigurator und zwar, was ist wenn ich ein Objekt von einer Klasse erstelle, in der im Konstruktor dieser Code steht.

Code:
DOMConfigurator.configureAndWatch( "log4j.xml", 60*1000 );

Was passiert denn da nun genau? Liest er nach jedem erzeugen die meine log4j.xml neu ein oder wartet er nach dem erzeugen eines Objekts 60 sec bis er sie einliest oder lieg ich ganz falsch? :confused:
 
Soweit ich weiß wird damit alle 60 Sek. (60 x 1000 Millisekunden) die Log4J Konfiguration neu gelesen ... Somit kannst du die Konfiguration zur Laufzeit ändern, zB um den DEBUG Level kurzzeitig zu setzten und wieder abzudrehen.
 

Neue Beiträge

Zurück