简体   繁体   English

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

[英]Log4j is not finding configuration in properties file

My log4j.properties file is: 我的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

and the location of log4j.properties file is in WEB-INF of my project. 并且log4j.properties文件的位置在我的项目的WEB-INF中。 So when I run my servlet I get this below message: 所以当我运行我的servlet时,我得到以下消息:

log4j:WARN No appenders could be found for logger (...). log4j:WARN找不到logger(...)的appender。

log4j:WARN Please initialize the log4j system properly. log4j:WARN请正确初始化log4j系统。

Where I am going wrong, I don't understand! 哪里出错了,我不明白!

I'm pretty sure by default Log4J searches in the classes directory. 我很确定默认Log4J在classes目录中搜索。 So try putting your log4j.properties there. 所以尝试将log4j.properties放在那里。

This is due to log4j searching the classpath for the log4j.properties and the WEB-INF Folder is not part of that but the classes directory is. 这是因为log4j在log4j.properties的类路径中搜索,而WEB-INF文件夹不是其中的一部分,而是classes目录。 So either put the file in classes directory, add the file to the classpath or manually load in your Servlet with: 因此要么将文件放在classes目录中,要将文件添加到类路径中,要么手动加载到Servlet中:

Below is my log4j properties file which works for me. 下面是我的log4j属性文件,对我有用。 It needs to be in the src/main/resources source folder. 它需要位于src / main / resources源文件夹中。 I notice the top line is different between mine and yours so maybe this is incorrect - try changing rootLogger to rootCategory. 我注意到我和你之间的顶线是不同的,所以可能这是不正确的 - 尝试将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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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