使用 SLF4J 的時候,同時使用很多開源函式庫,會很容易導致各種 log 跑不出來或者 dependency 衝突的問題
本質上是因為不同開源函式庫,各自使用了不同的 logging framework
因而導致了 log 被輸出到沒有被設定的實作,或者相同的實作被重複綁定等等。
Software entities (class, modules, functions, etc.) should be open for extension, but closed for modification. Junior programmers create simple solutions to simple problems. Senior programmers create complex solutions to complex problems. Great programmers find simple solutions to complex problems. 註1:本部落格的範例程式碼在 2015 年以前的文章中,大多是以全型空白做縮排。如需服用,請自行用文字編輯器的取代功能把全型空白取代成半型空白。
- Bertrand Meyer
- Charles Connell
註2:本部落格的內容授權請參閱部落格底部的授權宣告。
2017年12月19日 星期二
SLF4J 與其他 logging framework 實作綁定與橋接的關聯
2015年10月5日 星期一
在 Jetty 9 上使用 Logger
從 Tomcat 改用 Jetty 以後,第一個遇到的問題就是,以前用的 Log4j 好像沒有反應了。
查了一下,Jetty 好像預設使用 slf4j(如果 classpath 中存在 slf4j 的話)[1]
所以似乎比較建議使用 slf4j 作為 Logger。
查了一下,Jetty 好像預設使用 slf4j(如果 classpath 中存在 slf4j 的話)[1]
所以似乎比較建議使用 slf4j 作為 Logger。
2014年7月24日 星期四
使用 log4j 時,讓 Apache HttpClient 的 log 消失
如果有同時使用 log4j 和 HttpClient,應該很多人都有這個慘痛的經驗~
HttpClient 在執行時會把所有發送和接收的資料全部以 debug 等級的 log 輸出到 log4j
一般在做 JSON 處理時還好,這個 log 大概對於 debug 蠻有幫助的
但如果是在實作檔案上傳或者下載時,印出來的 log 等於是把要上傳或下載的檔案全部輸出到 log4j,是相當驚人的文字量
而且有時候會把 eclipse 弄到當機...。
HttpClient 在執行時會把所有發送和接收的資料全部以 debug 等級的 log 輸出到 log4j
一般在做 JSON 處理時還好,這個 log 大概對於 debug 蠻有幫助的
但如果是在實作檔案上傳或者下載時,印出來的 log 等於是把要上傳或下載的檔案全部輸出到 log4j,是相當驚人的文字量
而且有時候會把 eclipse 弄到當機...。
訂閱:
文章 (Atom)