【问题标题】:Log4j is not finding configuration in properties fileLog4j 在属性文件中找不到配置
【发布时间】:2014-03-07 10:51:51
【问题描述】:

我的 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系统。

我哪里错了,我不明白!

【问题讨论】:

    标签: java servlets log4j


    【解决方案1】:

    我很确定默认情况下 Log4J 会在 classes 目录中搜索。所以试着把你的 log4j.properties 放在那里。

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

    【讨论】:

    • 我也在那个位置放置了属性文件,但同样的事情发生了!还有你知道Log4j默认在哪里搜索properties文件吗!
    • 这行在我的属性文件中是否正确,我想它没有任何问题,log4j.appender.file.File=C:/Logging/log4jFile.log
    • 你的配置没问题。没有错。
    • 您可以尝试手动加载文件以确保这是问题所在。 org.apache.log4j.PropertyConfigurator.configure("C:/Logging/log4j.properties");
    • 我发现了问题,我很傻,我不得不在 src 文件夹中找到属性文件,但我将它定位在我的 servlet 所在的位置。谢谢,现在一切正常。顺便说一句,如果我想在其他地方放置属性,它怎么能工作!
    【解决方案2】:

    以下是适用于我的 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
    

    【讨论】:

    • 谢谢,是的,我找到了问题所在。属性文件不在默认位置!
    猜你喜欢
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 2016-06-01
    • 1970-01-01
    相关资源
    最近更新 更多