Jak skonfigurować log4j.properties, aby miał dokładnie jeden plik dziennika na uruchomienie aplikacji. Przeczytałem, że powinieneś używać znacznika czasu w nazwie pliku, ale to stworzy wiele plików na przebieg w miarę upływu czasu.Jeden plik dziennika na uruchomienie z log4j
Próbowałem DailyRollingFileAppender i RollingFileAppender, ale nie mogę znaleźć sposobu na skonfigurowanie tylko jednego dziennika na jeden przebieg. Dziennik nie powinien być podzielony na wiele dzienników i nie powinien być skracany, a pliki starych przebiegów powinny być zachowane.
Każda klasa ma statyczny org.slf4j.Logger za to własnym nazwiskiem Klasa:
private static final Logger log = LoggerFactory.getLogger(Foo.class);
To jest moje obecne 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! Dokładnie to, czego szukałem i dużo prostsze niż niestandardowy FileAppender w ten sposób: http://veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-each-time- the-application-runs/Ale prawdopodobnie nie jest to bezpieczne dla równoczesnych egzekucji, ale to nie jest dla mnie problem – lilalinux
"Odpowiedź Udo Klimaschewskiego" -> po prostu łączysz się z profilem użytkownika. Nie wiemy, do czego się odnosisz. –