log4j.properties没有在所有appender中读取

时间:2014-07-07 19:47:46

标签: java spring maven log4j slf4j

我有一个带有多个appender的log4j.properties。使用-Dlog4j.debug设置,我看到以下输出

log4j: Using URL [jar:file:/opt/local/blah/brian/vfabric-tc-server-developer-2.9.5.SR1/TCInstance-A/lib/Command-service-0.0.10-SNAPSHOT-dev1.jar!/log4j.properties] for automatic log4j configuration.
log4j: Reading configuration from URL jar:file:/opt/local/blah/brian/vfabric-tc-server-developer-2.9.5.SR1/TCInstance-A/lib/Command-service-0.0.10-SNAPSHOT-dev1.jar!/log4j.properties
log4j: Parsing for [root] with value=[INFO].
log4j: Level token is [INFO].
log4j: Category root set to INFO
log4j: Parsing for [ItOpsLogger] with value=[INFO, ITOPSLOG].
log4j: Level token is [INFO].
log4j: Category ItOpsLogger set to INFO
log4j: Parsing appender named "ITOPSLOG".
log4j: Parsing layout options for "ITOPSLOG".
log4j: Setting property [conversionPattern] to [[%d{yyyy/MM/dd HH:mm:ss.SSS}][%p][][][%h][%m]%n].
log4j: End of parsing for "ITOPSLOG".
log4j: Setting property [file] to [~/tmpAlertFiles].
log4j: Setting property [maxFileSize] to [1MB].
log4j: Setting property [threshold] to [INFO].
log4j: Setting property [maxBackupIndex] to [2].
log4j: setFile called: ~/tmpAlertFiles, true
log4j: setFile ended
log4j: Parsed "ITOPSLOG" options.
log4j: Handling log4j.additivity.ItOpsLogger=[null]
log4j: Finished configuring.
log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

正如你所看到的,我看到的唯一输出是否为ITOPSLOG,尽管我有其他的appender。然后我收到了

log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).

我确保commons-logging不在我的类路径中,并且我的类路径中有jcl-over-slf4j,slf4j-api,slf4j和log4j。

这是我的log4j.properties。任何想法?

#
# Simple log4j configuration.
#
log4j.rootCategory=INFO

# Console appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{HH:mm:ss,SSS} %5p [%t] %25.25c{1} - %m\n

# Rolling File Appender
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=${catalina.base}/logs/command_service.${tomcat.host}.log
log4j.appender.FILE.append=true
log4j.appender.FILE.maxBackupIndex=10
log4j.appender.FILE.maxFileSize=100MB
log4j.appender.FILE.bufferedIO=false
log4j.appender.FILE.bufferSize=1
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{MM/dd/yyyy HH\:mm\:ss,SSS} %5p [%t] %c{1} - %m\n

# DailyRollingFileAppender
log4j.appender.DAILY=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DAILY.DatePattern='.'yyyy-MM-dd
log4j.appender.DAILY.file=${catalina.base}/logs/command_service.${tomcat.host}.log
log4j.appender.DAILY.append=true
log4j.appender.DAILY.bufferedIO=false
log4j.appender.DAILY.bufferSize=3
log4j.appender.DAILY.layout=org.apache.log4j.PatternLayout
log4j.appender.DAILY.layout.ConversionPattern=%d{MM-dd-yyyy HH:mm:ss,SSS} %c{1}.%M %-5p [%t] - %m%n

# ITOPS Alert Appender
log4j.category.ItOpsLogger=INFO, ITOPSLOG
log4j.appender.ITOPSLOG=org.apache.log4j.RollingFileAppender
log4j.appender.ITOPSLOG.File=${tomcat.alertLogFile}
log4j.appender.ITOPSLOG.threshold=INFO
log4j.appender.ITOPSLOG.MaxFileSize=1MB
log4j.appender.ITOPSLOG.MaxBackupIndex=2
log4j.appender.ITOPSLOG.layout=com..brian.util.ItopsPatternLayout
log4j.appender.ITOPSLOG.layout.ConversionPattern=[%d{yyyy/MM/dd HH:mm:ss.SSS}][%p][blah][${tomcat.name}][%h][%m]%n

1 个答案:

答案 0 :(得分:0)

你有:

# NOTE THAT YOU HAVE SPECIFIED NO APPENDERS!!!!
log4j.rootCategory=INFO

因此,默认情况下,您的日志不会使用任何appender。 ITOPSLOG可以正常工作,因为您已经指定了

# This means: for category ItOpsLogger (and children), set INFO level by default
# and append to ITOPSLOG
log4j.category.ItOpsLogger=INFO, ITOPSLOG

我想你可能想要使用类似的东西:

# By default, set INFO level and append to FILE and DAILY
log4j.rootCategory=INFO, FILE, DAILY