【问题标题】:log4j warning (Please initialize the log4j system properly.) when running java application as jar将 java 应用程序作为 jar 运行时的 log4j 警告(请正确初始化 log4j 系统。)
【发布时间】:2018-06-28 15:17:41
【问题描述】:

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

【问题讨论】:

  • 根据以往的经验,我发现有时其他插件也会安装一个版本的 log4j,当它运行两个实例时,它们就不能正常运行。看看你是不是这样。
  • 你的类路径中没有 log4j.xml
  • 你可以“正确初始化log4j系统”。

标签: java logging jar log4j


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    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中点击project-->clean-->OK

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

    【讨论】:

    • 我只是假设更多的解释/信息可能会受到赞赏
    • 简单检查一下这个类的文档就可以准确地解释这个方法的作用?我会以任何方式编辑它。
    • @Stultuske 另外,您上面的评论也没有得到很好的解释。 '您可以“正确初始化 log4j 系统”。 --'
    • 我的评论就是:“评论”。您提供此作为答案,两者之间存在很大差异。我的评论背后的要点是:'错误消息告诉你你必须做什么才能解决它,所以不要试图弄清楚要做什么,而是要如何去做'
    • @CowboyFarnz 我尝试以两种方式添加配置。 'PropertyConfigurator.configure(>);' 'BasicConfigurator.configure();'但当时都没有工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 2011-09-30
    • 1970-01-01
    • 2018-05-18
    • 2011-12-02
    • 1970-01-01
    相关资源
    最近更新 更多