2011-03-09 103 views
2

我有點困惑,所以想問問專家。Java應用程序+日誌記錄

我寫了小型的java應用程序。我有讀取屬性文件的函數,其中包含寫入日誌和異常的目錄的路徑。假設我在閱讀屬性文件時遇到異常,因爲記錄器在那段時間之前不會被初始化,我怎麼能知道有錯誤或異常?如果我在catch塊中寫入e.printStackTrace(),它將被打印出來嗎?我正在通過Windows調度程序運行此應用程序。

感謝您的諮詢。

BR SC

回答

1

忘記Log4j的標準輸出。當日志功能不包含在JRE本身內時,這很有用。您可以通過logging.properties文件(在JVM起始點提供)配置日誌記錄屬性。在應用程序內部,您可以使用或不使用嵌套異常來記錄不同嚴重級別的消息。

Here是一個有用的頁面,帶有基本配置和日誌功能使用的例子。

+0

謝謝。我已經在使用java.util.logging。將遵循鏈接在全球層面實施。那麼,所有應用程序只能有一個全局日誌?我可以爲每個不同的應用程序創建單獨的日誌嗎? BR。 SC – SmoothCriminel 2011-03-09 15:35:01

+0

我在說JDK級別... – SmoothCriminel 2011-03-09 15:36:31

+0

我知道了...我可以使用java.util.logging.config.file = myLoggingConfigFilePath ...它也應該包含日誌文件名稱?例如「d:\測試\ logging.properties」。謝謝。 SC。 – SmoothCriminel 2011-03-09 15:42:22

1

使用log4j其配置[這裏將使用log4j.properties或.xml從classpath配置它自身],在應用程序啓動時初始化和應用廣泛的使用。

0

如果你想確定拋出異常,不要抓它:)

printStackTrace()寫入到stderr。您可以通過控制檯運行您的應用程序來閱讀它。

如果要登錄不管是什麼,沒有任何配置或額外的庫,你可以使用java-util.logging這是捆綁在一起的JDK和寫入默認

+0

謝謝。 BR。 SC。 – SmoothCriminel 2011-03-09 15:35:23