2

我很难让 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 中。我阅读了这篇文章和 log4j 网站的配置部分,但无法弄清楚。我已经在这里上传了我的 POM 。我很感谢任何可以帮助我解决问题的提示。

4

4 回答 4

1

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

<resources>
    <resource>
        <directory>src/main/resources</directory>
    </resource>
</resources>    
于 2012-06-25T05:32:31.893 回答
1

正如警告消息所说,它找不到 logger 的附加程序org.openrdf.sail.memory.MemoryStore。因此,请确保您确实有log4j.properties文件src/main/resources,然后确保jar按照您的设想将其打包。可能因为某种原因,我真的看不出来,没有打包。你知道,有时会发生一些事情......如果在 a 中有这样的文件jar,请确保最后比您配置的处理org.openrdf.sail.memory.MemoryStore记录器的附加程序。

检查此 log4j 配置是否有效的最简单方法可能是为log4j.rootLogger. 这样做并写下那里发生的事情。

于 2012-06-25T06:32:20.390 回答
0

请注意 log4j.properties 是区分大小写的;

于 2013-07-10T08:33:11.650 回答
0

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

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

于 2012-06-25T07:11:55.540 回答