我对SLF4J有一个奇怪的问题。
我有这个日志配置:
#####################
# Loggers
#####################
log4j.rootLogger = INFO, LOGFILE
log4j.logger.ACCESS_LOG=INFO, ACCESS_LOG
log4j.logger.METRICS=ERROR, METRICS
log4j.logger.PERFORMANCE=INFO, PERFORMANCE
#####################
# Log Appenders #
#####################
log4j.appender.LOGFILE = org.apache.log4j.RollingFileAppender
log4j.appender.LOGFILE.File=/logs/logfile.log
log4j.appender.LOGFILE.maxBackupIndex=30
log4j.appender.METRICS = org.apache.log4j.RollingFileAppender
log4j.appender.METRICS.File=/logs/metrics.log
log4j.appender.METRICS.maxBackupIndex=15
log4j.additivity.ACCESS_LOG=false
log4j.appender.ACCESS_LOG.File=/logs/access.log
log4j.appender.ACCESS_LOG = org.apache.log4j.RollingFileAppender
log4j.appender.ACCESS_LOG.Threshold = INFO
log4j.appender.PERFORMANCE = org.apache.log4j.RollingFileAppender
log4j.appender.PERFORMANCE.File=/logs/performance.log
log4j.appender.PERFORMANCE.Threshold = INFO
和我的java代码:
private static final Logger acccessLog = LoggerFactory.getLogger("ACCESS_LOG");
private static final Logger metricsLog = LoggerFactory.getLogger("METRICS");
private static final Logger performanceLog = LoggerFactory.getLogger("PERFORMANCE");
在本地,这可以正常工作;我的桌面上有四个日志文件,其中包含由不同消费者处理的不同信息。但是,当我将此代码部署到生产堆栈时,获取信息的唯一日志文件是logfile.log日志。其他日志文件(度量,访问和性能)都位于零字节,即使我可以进行调用并验证应用程序正在处理事件。我不知道为什么,但看起来无论出于何种原因,我都可以使用SLF4J在本地创建和使用多个记录器,但在不是本地桌面的环境中,整个过程失败,只有一个日志文件获取任何数据。
我正在使用SLF4J 1.7.12版。 apache commons-logging没有发生这个问题;当我试图改变我们的日志堆栈以使用SLF4J而不是apache commons时,它才开始发生。我的日志配置中是否存在导致此问题的错误?