Log4j未在属性文件中查找配置

时间:2014-03-07 10:51:52

标签: java servlets log4j

我的log4j.properties文件是:

# Log levels
log4j.rootLogger=INFO,CONSOLE,file
# Appender Configuration
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# Pattern to output the caller's file name and line number
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
# Rolling File Appender
log4j.appender.file=org.apache.log4j.RollingFileAppender
# Path and file name to store the log file
log4j.appender.file.File=C:/Logging/log4jFile.log
log4j.appender.file.MaxFileSize=200KB
# Number of backup files
log4j.appender.file.MaxBackupIndex=2
# Layout for Rolling File Appender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d - %c - %p - %m%n

并且log4j.properties文件的位置在我的项目的WEB-INF中。 因此,当我运行我的servlet时,我得到以下消息:

log4j:WARN找不到记录器(...)的附加程序。

log4j:WARN请正确初始化log4j系统。

我哪里出错了,我不明白!

2 个答案:

答案 0 :(得分:2)

我很确定默认Log4J在classes目录中搜索。所以尝试将log4j.properties放在那里。

这是因为log4j在log4j.properties的类路径中搜索,而WEB-INF文件夹不是其中的一部分,而是classes目录。因此,要么将文件放在classes目录中,要将文件添加到类路径中,要么手动加载到Servlet中:

答案 1 :(得分:0)

下面是我的log4j属性文件,对我有用。它需要位于src / main / resources源文件夹中。我注意到我和你的顶线是不同的,所以这可能是不正确的 - 尝试将rootLogger改为rootCategory。

log4j.rootCategory=INFO, CONSOLE, FILE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=ERROR
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p %c- %m%n

log4j.logger.com.myCompany.log4jexample= TRACE, FILE, CONSOLE

log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=Logs.log
log4j.appender.FILE.Threshold=WARN
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d %-5p %c- %m%n