我实际上正在使用slf4j / log4j进行项目。 为此,我们使用log4j.properties文件来配置日志记录,尤其是DailyRollingFileAppender。
# Root logger option
log4j.rootLogger=INFO, file, stdout
log4j.logger.com.thales.ecosystem=DEBUG,stdout,file
log4j.additivity.com.thales.ecosystem=false
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
# this is set dynamically
log4j.appender.file.File=${log.basedir}/decoders/nm-flight-decoder.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} v${release.version} %-5p %c{1}:%L - %m%n
log4j.appender.file.Append=true
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} v${release.version} %-5p %c{1}:%L - %m%n
在代码中,我们使用loggerFactory:
private static final Logger LOGGER = LoggerFactory.getLogger(xxxxxxxx.class);
但我们现在要处理多个(但数量有限)相同的过程。 所以问题是:我们怎么能有两个进程(同一个类) 每个类只有一个log4j.properties,每个文件写一个,并保留DailyRollingFileAppender? 谢谢!
答案 0 :(得分:0)
在配置中创建一个属性的文件名,并使用该属性的不同值启动每个进程。
log4j.appender.file.File=${log.basedir}/decoders/${proc}.log
使用-Dproc=nm-flight-decoder
启动一个进程,使用不同的值启动另一个进程。
(另外,请考虑升级到Log4j2。Log4j 1.2 has been End of Life since summer 2015(已归档here),并且已知为broken on Java 9(归档here)。)