在打包的maven jar中找不到log4j.properties

时间:2012-06-23 22:34:28

标签: maven log4j

我很难让log4j与我的小maven项目一起工作。在Eclipse中运行程序不会产生任何错误,并且日志记录工作正常。 但是,当我将项目打包到jar中时,我收到以下警告:

log4j:WARN No appenders could be found for logger (org.openrdf.sail.memory.MemoryStore).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

log4j.properties文件打包到我的jar中,它位于项目的src / main / resources中。我阅读了this帖子和log4j网站的配置部分,但无法弄清楚。我上传了我的POM here。 我很感谢任何可以帮助我解决问题的提示。

4 个答案:

答案 0 :(得分:1)

<resource>标记下添加<build></build>标记。通过这样做,我们说如果不采用默认构建,则从指定路径获取资源。

<resources>
    <resource>
        <directory>src/main/resources</directory>
    </resource>
</resources>    

答案 1 :(得分:1)

正如警告消息所示,它无法找到记录器org.openrdf.sail.memory.MemoryStore的附加程序。因此,请确保log4j.properties中确实有src/main/resources个文件,然后确保将其打包到jar中。也许出于某种原因,我真的看不到,它没有打包。你知道,狗屎有时会发生......如果在jar中有这样的文件,请确保最后配置处理org.openrdf.sail.memory.MemoryStore记录器的appender。

检查此log4j配置是否有效的最简单方法可能是为log4j.rootLogger设置默认控制台appender。做它并写下那里发生的事情。

答案 2 :(得分:0)

你似乎用你的依赖项组装你的jar。如果这些罐子还包含log4j.properties,并且在覆盖你的罐子时被捡起,这可能会导致问题。因此,它找不到类org.openrdf.sail.memory.MemoryStore的记录器。

只使用一个记录器文件,其中包含jar的日志信息以及所有依赖项。这只是复制和粘贴的问题。它还能够控制依赖类的日志记录级别。

答案 3 :(得分:0)

请注意,log4j.properties是个案敏感的;