Java 使用相同log4j.properties的多个进程

Java 使用相同log4j.properties的多个进程,java,slf4j,log4j2,Java,Slf4j,Log4j2,我实际上在一个使用slf4j/log4j的项目中。 为此,我们使用log4j.properties文件来配置日志记录,特别是DailRollingFileAppender # Root logger option log4j.rootLogger=INFO, file, stdout log4j.logger.com.thales.ecosystem=DEBUG,stdout,file log4j.additivity.com.thales.ecosystem=false # Direct

我实际上在一个使用slf4j/log4j的项目中。 为此,我们使用log4j.properties文件来配置日志记录,特别是DailRollingFileAppender

# 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,每个类在一个文件上写入,并保留DailRollingFileAppender?
谢谢你

将配置中的文件名设置为属性,并使用该属性的不同值启动每个进程

log4j.appender.file.File=${log.basedir}/decoders/${proc}.log
使用
-Dproc=nm飞行解码器启动一个进程,使用不同的值启动另一个进程


(也可以考虑升级到Log4j2。(归档),并被称为(归档))。