繁体   English   中英

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

[英]how to log exception while loading log4j.xml

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

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

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

任何帮助表示赞赏!

为什么它不起作用,只是用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屏幕,因此,当通过java -jar yourJar.jar运行它时,如果在Windows上存在问题, java -jar yourJar.jar在这种情况下会将消息写入您的dos屏幕。 或者,您可以提供此jar的文件路径,并将日志写入此文件。 或者,您可以将事件日志记录用于更复杂的解决方案,请查看此讨论

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM