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