簡體   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