Log4j:Protokolle displying auf Konsole, aber die Datei wird nicht immer aktualisiert
Hier bin ich mit log4j-API in standalone-Anwendung in Netbeans.Protokolle werden immer gedruckt auf Konsole, aber NICHT in der Datei.Log4j-Datei im source-Ordner .Bitte helfen Sie mir!
Unten ist die meine log4j.Eigenschaften Datei
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.file.layout.ConversionPattern=%d %5p %c{1}\:%L - %m%n
log4j.appender.file.File=E:\\Final\\Testing123.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.DatePattern`enter code here`='.'yyyy-MM-dd
log4j.logger.testing=DEBUG, stdout, file
log4j.appender.stdout.layout.ConversionPattern=%d %5p %c{1}\:%L - %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.Target=System.out
und unten ist die Klasse, wo ich bin, es zu benutzen.
public class Test {
protected static Logger logger = LoggerFactory.getLogger(Testing.class.getName());
public static void main(String[] args) {
logger.debug("Test Log1");
Test t = new Test();
logger.debug("Test Log2");
//t.setLogPropertyFile();
logger.debug("Test Log3");
t.testthis();
logger.debug("Test Log4");
}
public void testthis(){
this.logger.debug("Test Log");
this.logger.info("Test Log");
this.logger.warn("Test Log");
this.logger.error("Test Log");
}
InformationsquelleAutor Rohan | 2013-04-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie es aussieht, dein problem ist hier:
Wahrscheinlich ein copy/paste Sache, aber es sollte wie folgt Aussehen:
Außerdem ist es viel einfacher zu sehen, was Los ist, wenn Sie organisieren die config-Datei:
- - - - - Edit - - - - -
Wenn die Ausführung als standalone-java-Anwendung, die Sie Konfigurieren müssen Ihre log4j-framework beim Start. Sie finden Informationen dazu in der Konfiguration Abschnitt die Dokumentation. Insbesondere, da Sie versuchen, eine Eigenschaften-Datei, müssen Sie etwas tun, wie dieses (entlehnt direkt aus der Dokumentation):
Sorry...die Datei ist auch nicht immer erstellt...nur, die logs kommen auf der Konsole..
Sind Sie sicher, dass Ihre log4j ist immer initialisiert, die von Ihren Eigenschaften-Datei? Sie konnte sehen, Protokollierung standardmäßig geht nach stdout. Versuchen Sie Ihr logger:
log4j.logger.testing=ERROR, stdout, file
und stellen Sie sicher, dass nur Fehlermeldungen protokolliert werden...ich habe versucht, über seine nicht funktioniert...alle Nachrichten werden immer gedruckt..unten ist die Ausgabe von m immer nach änderung der logger-FEHLER: 20:49:26.362 [main] DEBUG testen.Testen - Log1 20:49:26.378 [main] DEBUG testen.Testen - Log2 20:49:26.378 [main] DEBUG testen.Testen - Log3 20:49:26.378 [main] DEBUG testen.Testen - Log 20:49:26.378 [main] INFO testen.Testen - Log 20:49:26.378 [main] WARN testen.Testen - Log 20:49:26.378 [main] - ERROR-Tests.Testen - Log 20:49:26.378 [main] DEBUG testen.Testen - Log4
So, da sind Sie immer DEBUG-Meldungen noch, kann man folgern, dass Ihre log4j ist nicht immer initialisiert, die von Ihren Eigenschaften-Datei. Welche Infrastruktur benutzen Sie? Dies ist eine web-app? Was servlet-container? Welche anderen frameworks? Sie alle initialisieren der Protokollierung etwas anders.
InformationsquelleAutor Lucas