В приложении есть требование, чтобы созданный файл журнала имел другое имя при каждом запуске (в зависимости от функциональности + текущего потока).Я видел вопросы, уже опубликованные в SO, и пытался использовать тот же метод, но он не работает.
Все операторы журнала регистрируются в "xyz.log" (указанном в log4j.properties),Только "org.apache.log4j.PatternLayout" регистрируется в abc.log (указанном в программе).Любые указатели для решения этой проблемы будут очень полезны.
log4j.properties
log4j.rootLogger=DEBUG, MyLogger
log4j.appender.MyLogger=org.apache.log4j.FileAppender
log4j.appender.MyLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.MyLogger = org.apache.log4j.DailyRollingFileAppender
log4j.additivity = false
log4j.appender.MyLogger.File=xyz.log
log4j.appender.MyLogger.MaxFileSize = 5MB
log4j.appender.MyLogger.MaxBackupIndex = 20
# Pattern to output the caller's file name and line number.
log4j.appender.MyLogger.layout.ConversionPattern=%d %5p [%t](%c:%L) - %m%n
Java-код
logger = Logger.getLogger(MyLoggerUtil.class);
Layout layout = new PatternLayout("org.apache.log4j.PatternLayout");
logger.removeAllAppenders();
FileAppender appender = null;
try {
appender = new FileAppender(layout, "abc.log", false);
} catch (IOException e) {
e.printStackTrace();
}
logger.addAppender(appender);
logger.setLevel((Level) Level.DEBUG);
logger.debug("This is a debug test");