我一直在研究eclipse中的java项目,该项目通过批处理文件运行并使用log4j。使用log4j.properties文件和使用过滤器的自定义级别,以便只将该级别写入该级别的日志文件。它工作得很好。
然后我将我的项目编组,将log4j.properties文件放在src / main / resources /中。程序运行正常,但日志都搞砸了。过滤器不再受到尊重,因此日志文件包含来自其上方每个自定义级别的日志;而不仅仅是那个级别。现在,只有当我通过批处理文件运行它时才会发生此错误。如果我编译并运行日志正常工作。
批处理文件中的我的CLASSPATH变量包含所有jar文件和目标/类中的所有类。
我不确定该怎么做或问题出在哪里,所以我们将不胜感激任何帮助或建议。
答案 0 :(得分:0)
我不认为该行为表明类路径上没有 log4j.properties。 如果没有这样的文件,log4j 不会初始化(除非通过代码告知)。未初始化的 log4j 只是发出一条未初始化的消息 - 之后应用程序运行但不会发生日志记录。
您描述的行为表明类路径上可能存在其他一些 log4j.properties 超出您的预期。请注意,这是正常的合法情况,您可能需要检查类路径内容(按指定顺序)以查看是否存在此类文件以及是否包含预期内容。