2013-02-25 53 views
0

這裏log4j的最佳實踐是我的設置:爲內部庫中記錄(雙日誌記錄)

  • WEBAPP:Spring MVC的Web應用程序
  • 庫:內部庫我用 內WEBAPP

在WEBAPP中,我有一個在我的「基本」控制器中定義的異常處理程序,如下所示:

@ExceptionHandler(Exception.class) 
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) 
public final ModelAndView handleException(
     final Exception e, 
     final HttpServletRequest request) 
{ 
    // some stuff... 
    LOG.error(message, e); 
    // some more stuff... 
} 

其中LOG是我在該類中靜態定義的log4j記錄器。

在LIBRARY中,我將任何異常記錄爲錯誤,然後將它們重新引發到客戶端。在這種情況下,客戶端是WEBAPP。現在,正如您所看到的,每次發生錯誤時,我都有2個日誌條目!一個用於圖書館,一個用於WEBAPP。

我不想刪除WEBAPP的異常處理程序,因爲可以在LIBRARY外部拋出異常,並且我想在將500返回給WEBAPP客戶端之前記錄它們。

有什麼建議嗎?

回答

0

我採取的方法,你應該只捕捉一個異常,如果你打算在那個地方做點什麼。記錄異常沒有做任何事情。我的建議是不要登錄你的圖書館。簡單地讓例外通常冒泡,因爲它聽起來像你並沒有試圖在庫中做任何特別的事情。