2009-04-07 22 views
3

Ich versuche, meinen Quartz-Scheduler so zu konfigurieren, dass er die Protokollierung unterstützt. Ich habe versucht, folgendes zu tun:Quarz-Scheduler zeigt keine Log4j-Meldungen an

log4j.xml im Klassenordner meiner App hinzugefügt. Der Code für das gleiche ist:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern= 
    %d{ABSOLUTE} %5p %c{1}:%L - %m%n 
log4j.rootLogger=debug, stdout 

Added Aussagen in meiner Ablaufsteuerungs-Klasse folgende:

static Logger logger = Logger.getLogger("QuartzReport.class"); 
logger.info("Info"); 

jedoch die Konsole zeigt die folgende Meldung mit bis starten:

log4j:WARN No appenders could be found for logger 
    (org.quartz.simpl.SimpleThreadPool). 
log4j:WARN Please initialize the log4j system properly. 

Bitte sagen ich, ob ich etwas vermisse.

Grüße, Ibu

+0

Aprt von was Douglas erwähnt, ich denke, Sie müssen Kategorie für org.quartz in log4j.properties hinzufügen –

Antwort

2

Sie verpassen essentialy zwei Punkte:

  1. Ihre Konfigurationsdatei ist eine Properties-Datei, kein XML. Sie sollten es als 'log4j.properties' speichern;
  2. Stellen Sie sicher, dass sich die in Punkt 1 genannte Datei im Klassenpfad der Anwendung befindet (vorausgesetzt, eine aktuelle log4j-Implementierung wird verwendet).

Viel Glück,

Douglas

+0

Dank Douglas, ich kümmerte mich um beide Punkte. Detaillierte Kommentare finden Sie in meinem nächsten Antwortsegment. Grüße, Ibu –

0

finden Sie Ihre log4j Config mit dieser Linie

log4j.logger.org.quartz = Debug-Aktualisierung, stdout

+0

Versucht, ur-Code in log4j.properties.Gothe folgenden Fehler bei der Bereitstellung hinzuzufügen. Die Nachrichten in der Protokolldatei werden jedoch so gedruckt, wie sie zuvor ausgegeben wurden. Plzrefermynextanswer. log4j: FEHLER Wert für Schlüssel nicht gefunden log4j.appender.stdout log4j: FEHLER Appender namens "stdout" konnte nicht instanziiert werden. –

0

Sie können Sie konfigurieren programmatisch programmieren (wie in der Hauptmethode Ihrer Klasse QuartzReport), entweder mit einer Konfigurationsdatei (Ihrer Eigenschaftendatei).

Neuere Versionen von Log4j versuchen, eine Datei mit dem Namen log4j.properties aus Ihrem Klassenpfad zu laden und verwenden Sie sie, um Ihren Logger automatisch zu konfigurieren.

In Ihrem Fall überschreibt der Aufruf BasicConfigurator.configure() alle Definitionen in Ihrer Eigenschaftendatei (d. H. Ihre Eigenschaftendatei wird ignoriert). Die im Protokoll angezeigte Ausgabe entspricht dem Muster, das Sie im PatternLayout-Konstruktor angegeben haben. Weitere Details zur Definition eines solchen Musters finden Sie in der PatternLayout class documentation.