我在我的java應用程序中使用slf4j/log4j。
我的問題是,現在我只能夠記錄異常堆棧跟蹤調用一個嘗試捕捉的閉鎖段適當的記錄方法,如:SLF4J-LOG4J如何在日誌文件中保存未捕獲的異常
我想提出在日誌文件中還運行時異常,我沒有把任何cacth,像NullPointerException或NumberFormatException。
由於它們在控制檯中顯示,我猜想有一種方法可以將此流從控制檯重定向到SLF4J記錄器。
任何人都知道我該怎麼做?
我在我的java應用程序中使用slf4j/log4j。
我的問題是,現在我只能夠記錄異常堆棧跟蹤調用一個嘗試捕捉的閉鎖段適當的記錄方法,如:SLF4J-LOG4J如何在日誌文件中保存未捕獲的異常
我想提出在日誌文件中還運行時異常,我沒有把任何cacth,像NullPointerException或NumberFormatException。
由於它們在控制檯中顯示,我猜想有一種方法可以將此流從控制檯重定向到SLF4J記錄器。
任何人都知道我該怎麼做?
如果您想記錄未檢查例外,趕上RuntimeException
並記錄它們。
要記錄全部例外,趕上Exception
並記錄它們。
也要記錄錯誤,趕上Throwable
並記錄它們。
對於命令行程序,你可能想這樣做的main()
方法,在try
塊後開始初始化日誌框架。
如果您使用線程,您可能需要在Runnable
/Thread
的run()
方法中執行此操作。
在Servlet Web應用程序中,您可以在Filter
中執行此操作,並重新引發異常,以便容器可以正確處理錯誤。
嗨,謝謝你的回答,它應該工作。 順便說一句我猜如果有更好的方法來管理它,這似乎有點解決方法。我會等着看有沒有人有更好的主意,然後最終將你的選擇標記爲選定的答案 – user2572526
線程類有一個方法來註冊一個未捕獲的異常處理程序。 – Fildor