当运行java应用程序作为jar时,log4j警告(请正确初始化log4j系统。)

时间:2018-01-19 11:30:21

标签: java logging jar log4j

我现在正在创建一个独立的java应用程序,它需要作为可执行jar运行。我已经配置了log4j以进行正确的日志记录。它在从eclipse运行应用程序时写入所有日志文件。但是当我运行可执行jar时,它会出现一个警告 ** log4j:WARN没有找到记录器的appender log4j:WARN请正确初始化log4j系统。 log4j:WARN有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig。 ** 有人可以建议如何解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

您可能没有有效或正确的配置。将其添加到主方法中。

BasicConfigurator.configure();

如果失败,如果您在pom中使用maven,则可能无法正确设置属性文件。

另一种情况是您使用了两种不同的日志框架。使用其中一种。

另一个尝试是做这样的事情来设置属性或log4j rootlogger:

 Properties prop = new Properties(); 
 prop.setProperty("log4j.rootLogger", "WARN");
 PropertyConfigurator.configure(prop);

此外,您可以尝试在启动Java时向命令行添加系统属性:

-Dlog4j.configuration=file:///path/to/your/log4j.properties

最后的努力是:

将您的log4j.properties文件移动到src文件夹中。打开Windows资源管理器,浏览到项目所在的目录。浏览到bin目录并删除其中的所有文件夹。

现在在eclipse中单击项目 - > clean - >确定

这会强制它再次构建项目,将重新创建从bin目录中删除的所有内容。然后在新构建时再次使用可执行jar。

答案 1 :(得分:0)

我尝试在我的主类上添加以下配置。 PropertyConfigurator.configure("/opt/resources/log4j.properties");它确实有效。尽管它仍然显示警告消息,但它正在写日志文件。