Eine Logdatei pro Ausführung mit log4j
Wie konfigurieren Sie log4j.Eigenschaften genau eine Logdatei pro Ausführung einer app.
Ich habe gelesen, dass Sie verwenden sollten einen timestamp in den Dateinamen aber, dass viele Dateien pro Durchlauf wie die Zeit vergeht.
Ich habe versucht, DailyRollingFileAppender und RollingFileAppender, kann aber nicht einen Weg finden, zu konfigurieren exctly ein Protokoll pro laufen. Das Protokoll sollte nicht gebrochen werden, in der mehrere Protokolle und es sollte nicht abgeschnitten werden und die Dateien der alten läuft, sollte beibehalten werden.
Jede Klasse hat eine statische org.slf4j.Logger für die es eine eigene Klasse name:
private static final Logger log = LoggerFactory.getLogger(Foo.class);
Dies ist meine aktuelle log4j.Eigenschaften
log4j.rootLogger=error, RootAppender, RootErrorAppender
#log4j.logger.com.example=info, qspaBackendAppender, stderr
log4j.logger.com.example=info, qspaBackendAppender
log4j.additivity.com.example=true
#log4j.logger.com.example.util=trace, qspaBackendAppender, stderr
#log4j.additivity.com.example.util=true
log4j.appender.qspaBackendAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.qspaBackendAppender.file=logs/qspaBackend.log
log4j.appender.qspaBackendAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.qspaBackendAppender.layout.ConversionPattern=<%d{yyyy-MM-dd HH:mm:ss}> %-5p : %C{1} %c{2} : %m%n
log4j.appender.stderr=org.apache.log4j.ConsoleAppender
log4j.appender.stderr.Target=System.err
log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
log4j.appender.stderr.layout.ConversionPattern=%-5p %c{1}:%L - %m%n
log4j.appender.RootAppender=org.apache.log4j.RollingFileAppender
log4j.appender.RootAppender.file=logs/root.log
log4j.appender.RootAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RootAppender.layout.ConversionPattern=<%d{yyyy-MM-dd HH:mm:ss}> %-5p : %C{1} %c{2} : %m%n
log4j.appender.RootErrorAppender=org.apache.log4j.RollingFileAppender
log4j.appender.RootErrorAppender.file=logs/rootError.log
log4j.appender.RootErrorAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RootErrorAppender.layout.ConversionPattern=<%d{yyyy-MM-dd HH:mm:ss}> %-5p : %C{1} %c{2} : %m%n
log4j.appender.RootErrorAppender.threshold=error
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kombinieren die Antwort von Udo Klimaschewski und die Antwort von diesem Frage, um das gewünschte Ergebnis zu erhalten.
Hatte ich Probleme abrufen, die Udo Klimaschewski Antwort iel bezog, so habe ich hier meine Lösung.
log4j.Eigenschaften:
Dann in der main-Klasse in diesem block:
Start eine neue log-Datei auf app startup, die Sie verwenden möchten, können OnStartupTriggeringPolicy
Auslösende Maßnahmen
Beispiel der XML-config:
Funktioniert gut für mich,