简体   繁体   中英

Multiple process using the same log4j.properties

I'm actually on a project using slf4j/log4j. For that, we use log4j.properties files to configure the logging, especially the 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

And in code, we use the loggerFactory :

private static final Logger LOGGER = LoggerFactory.getLogger(xxxxxxxx.class);

But we have now to deal with multiple (but limited in number) identical process. So the question is : how can we have two process (with the same class) with only one log4j.properties per class, writting on a file each, and keeping the DailyRollingFileAppender ? Thank's !

Make the file name in the configuration a property, and start each process with a different value for that property.

log4j.appender.file.File=${log.basedir}/decoders/${proc}.log

Start one process with -Dproc=nm-flight-decoder , and the other one with a different value.

(Also, consider upgrading to Log4j2. Log4j 1.2 has been End of Life since summer 2015 (archived here ) and is known to be broken on Java 9 (archived here ).)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM