SLF4J无法在远程计算机上正确记录

时间:2016-12-10 00:51:31

标签: java logging slf4j apache-commons-logging

我对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时,它才开始发生。我的日志配置中是否存在导致此问题的错误?

0 个答案:

没有答案