2016-12-11 26 views
0


我在我的java應用程序中使用slf4j/log4j。
我的問題是,現在我只能夠記錄異常堆棧跟蹤調用一個嘗試捕捉的閉鎖段適當的記錄方法,如:SLF4J-LOG4J如何在日誌文件中保存未捕獲的異常

​​

我想提出在日誌文件中還運行時異常,我沒有把任何cacth,像NullPointerException或NumberFormatException。
由於它們在控制檯中顯示,我猜想有一種方法可以將此流從控制檯重定向到SLF4J記錄器。
任何人都知道我該怎麼做?

+1

線程類有一個方法來註冊一個未捕獲的異常處理程序。 – Fildor

回答

1

如果您想記錄未檢查例外,趕上RuntimeException並記錄它們。
要記錄全部例外,趕上Exception並記錄它們。
也要記錄錯誤,趕上Throwable並記錄它們。

對於命令行程序,你可能想這樣做的main()方法,在try塊後開始初始化日誌框架。

如果您使用線程,您可能需要在Runnable/Threadrun()方法中執行此操作。

在Servlet Web應用程序中,您可以在Filter中執行此操作,並重新引發異常,以便容器可以正確處理錯誤。

+0

嗨,謝謝你的回答,它應該工作。 順便說一句我猜如果有更好的方法來管理它,這似乎有點解決方法。我會等着看有沒有人有更好的主意,然後最終將你的選擇標記爲選定的答案 – user2572526