如何在加载log4j.xml时记录异常

时间:2015-03-12 16:12:28

标签: java logging

我们有一个Java程序,它被打包为一个可运行的jar。使用log4j通过slf4j进行日志记录。我们将log4j.xml放在runnable jar之外 - 放到文件系统上。只要用户单击runnable jar,就会调用main方法,该方法调用该函数来加载log4j.xml文件。我的问题是如果加载log4j.xml本身失败了。如何记录该异常?记录器尚未初始化,据我所知,sys.out在这种情况下不会有用。以下是在调用main方法后立即调用的代码片段:

/* This method loads the log4j.xml file from local directory */
public static void loadLog4jXml(){
        DOMConfigurator.configure( "C:\MyFirstJavaExecJar\log4j.xml" );
    }

我试过谷歌搜索,但无法找到任何指针。还尝试浏览apache网站上的FAQ列表:http://logging.apache.org/log4j/2.x/faq.html

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

为什么它不起作用只是用try catch blog封装代码并将其记录到Console或文件中,因为它不是经常发生的事情。

/* This method loads the log4j.xml file from local directory */
public static void loadLog4jXml(){
        try{
             DOMConfigurator.configure( "C:\MyFirstJavaExecJar\log4j.xml");
        }
        catch(Exception e){
          System.out.println("There is a problem about log4J file loading");
        }
    }

好的,首先在使用try catch加载log4j文件时封装代码,如果在windows控制台中运行它,则控制台是此处的dos屏幕,因此如果在Windows运行时出现问题,请通过{ {1}}在这种情况下,它会将消息写入您的dos屏幕。或者,您可以为此jar提供文件路径并将日志写入此文件。或者您可以使用事件日志记录来获得更复杂的解决方案,请检查此discussion