java - 通过批处理文件运行 maven java 项目时忽略 log4j 属性

标签 java maven batch-file log4j

我一直在 eclipse 中开发一个 java 项目,该项目通过批处理文件运行并使用 log4j。使用 log4j.properties 文件和使用过滤器的自定义级别,因此只有该级别被写入该级别的日志文件。而且效果很好。

然后我对我的项目进行了管理,将 log4j.properties 文件放在 src/main/resources/中。而且程序运行正常,但是日志全乱了。过滤器不再受到尊重,因此日志文件包含来自其上方每个自定义级别的日志;而不仅仅是那个水平。现在这个错误只发生在我通过批处理文件运行它时。如果我编译和运行日志工作正常。

批处理文件中的 CLASSPATH 变量包含所有 jar 文件和目标/类中的所有类。

我不确定该怎么做或问题可能出在哪里,因此我们将不胜感激任何帮助或建议。

最佳答案

我不认为该行为表明类路径上没有 log4j.properties。 如果没有这样的文件,则 log4j 不会初始化(除非通过代码告知)。未初始化的 log4j 只是发出一条消息,表明它未初始化 - 之后应用程序运行但不会发生日志记录。

您描述的行为表明类路径上可能有其他一些 log4j.properties 超出您的预期。请注意这是正常的合法情况,您可能需要检查类路径内容(按指定顺序)以查看是否存在这样的文件以及它是否包含预期内容。

关于java - 通过批处理文件运行 maven java 项目时忽略 log4j 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20498122/

相关文章:

Java:可以替换现有 JTable 中的 TableModel 吗?

maven-2 - Maven-替换Jar中的文件

java - 尝试访问注入(inject)的 Bean 时出现空指针异常

java - 如何让 Maven 自动重试(从失败的模块恢复)?

batch-file - 如何将值从子进程传递到父 cmd.exe shell?

batch-file - 在批处理脚本的for循环中重定向命令的输出

java - 将 Swing 按钮添加到使用 AWT 绘制的程序中

java - 如何在 HttpURLConnection 中发送 PUT、DELETE HTTP 请求?

java - 无法将数据插入 SQLite 表

git - 使用Maven编译使用旧版本Giraph的项目