Wie konfigurieren Sie log4j.properties, um genau eine Logdatei pro Lauf einer App zu haben. Ich habe gelesen, dass Sie einen Timestamp im Dateinamen verwenden sollten, aber das wird viele Dateien pro Lauf im Laufe der Zeit erstellen.Ein Logfile pro Lauf mit log4j
Ich habe versucht DailyRollingFileAppender und RollingFileAppender, aber kann keine Möglichkeit finden, genau ein Protokoll pro Lauf zu konfigurieren. Das Protokoll sollte nicht in mehrere Protokolle aufgeteilt werden und es sollte nicht abgeschnitten werden, und Dateien von alten Läufen sollten beibehalten werden.
Jede Klasse hat einen statischen org.slf4j.Logger für seinen eigenen Klassennamen:
private static final Logger log = LoggerFactory.getLogger(Foo.class);
Dies ist mein aktuell log4j.properties
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
Perfect! Genau das, was ich suchte und viel einfacher als ein benutzerdefinierter FileAppender wie folgt: http://veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-a-ach-time- The-Application-runs/Aber wahrscheinlich ist es nicht sicher für gleichzeitige Ausführungen, aber das ist kein Problem für mich – lilalinux
'Die Antwort von Udo Klimaschewski' -> Sie sind nur mit dem Benutzerprofil verknüpfen. Wir wissen nicht, worauf Sie sich beziehen. –