Come si configura log4j.properties di avere esattamente un file di log per ogni corsa di un app. Ho letto che dovresti usare un timestamp nel nome del file ma che creerà molti file per esecuzione col passare del tempo.Un file di log per ogni corsa con log4j
ho cercato DailyRollingFileAppender e RollingFileAppender, ma non riesce a trovare un modo per configurare exctly un log per ogni corsa. Il log non dovrebbe essere suddiviso in più log e non dovrebbe essere troncato e i file di vecchie esecuzioni dovrebbero essere preservati.
ogni classe ha un'org.slf4j.Logger statico per il proprio nome di classe:
private static final Logger log = LoggerFactory.getLogger(Foo.class);
Questo è il mio attuale 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
Perfetto! Esattamente quello che stavo cercando e molto più semplice di un FileAppender personalizzato come questo: http://veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-each-time- the-application-runs/Ma probabilmente non è sicuro per le esecuzioni concorrenti, ma questo non è un problema per me – lilalinux
'La risposta di Udo Klimaschewski' -> stai solo collegando al profilo utente. Non sappiamo a cosa ti riferisci. –