0
A
回答
1
通常情況下,你必須每班記錄器的設置,因爲這是一個很好的邏輯組件。線程已經是日誌消息的一部分(如果你的過濾器顯示它們),那麼以這種方式切分記錄器可能是多餘的。
關於基於應用程序或圖層的記錄器,問題是您必須找到一個位置來粘貼該記錄器對象。沒有什麼大不了的。更大的問題是,某些類可能會在多個應用程序的多個層次上使用......可能很難讓您的記錄器正確。或者至少棘手。
...你想要的最後一件事是你的日誌設置中的錯誤假設。
如果您關心應用程序和圖層,並且有簡單的分隔點,NDC就是您的選擇。代碼有時可能有點過分,但我不知道有多少次我通過精確的上下文堆棧保存,顯示Foo.bar()是從Y層的應用程序X調用的。
策略最常用的是爲每個類創建一個記錄器。如果你創建新的線程給他們一個有用的名字,所以他們的日誌很容易區分。
創建每班記錄儀具有能夠打開/關閉日誌記錄在你的類的封裝結構的好處:
log4j.logger.org.apache = INFO
log4j.logger.com.example = DEBUG
log4j.logger.com.example.verbose = ERROR
上面將設置所有的Apache庫代碼INFO
水平,從登錄交換機您自己的代碼爲DEBUG
級別,但詳細軟件包除外。
0
(a)中定義相同的類別getLogger()的所有調用:
// Create a logger per class:
static Logger log = Logger.getLogger(MyClass.class);
// Use the same logger for the whole application:
// use this line in all your classes:
static Logger log = Logger.getLogger("YourLogCategory");
HTH。
相關問題
- 1. 單點登錄Web應用程序Java
- 2. Web應用程序自動登錄
- 3. Web應用程序的登錄安全
- 4. log4net從Web應用程序登錄
- 5. 單一登錄爲Web應用程序
- 6. 登錄Flex Web應用程序
- 7. Web應用程序登錄系統
- 8. 一個在應用程序中登錄的web應用程序
- 9. 區分應用程序登錄和Web登錄Firebase
- 10. 應用程序與Facebook登錄登錄
- 11. 登錄Facebook應用程序
- 12. Android應用程序登錄
- 13. Android應用程序登錄
- 14. Iphone登錄應用程序
- 15. Android登錄應用程序
- 16. Facebook登錄應用程序
- 17. Iphone登錄應用程序
- 18. Android登錄應用程序
- 19. Angular.js應用程序登錄
- 20. 在asp.net web應用程序上使用WCF服務應用程序登錄
- 21. 使用NetSuite憑證登錄外部Web應用程序 - 單擊登錄| SuiteSignOn
- 22. 我的Web應用程序(使用Facebook登錄)登錄我出去
- 23. Silverlight 4應用程序和Web應用程序的單點登錄
- 24. 安全Google Plus通過Android應用程序登錄到Web應用程序
- 25. 安裝iPhone應用程序登錄到PHP Web應用程序後端
- 26. 從Android客戶端應用程序登錄到AppEngine Web應用程序
- 27. 通過編程防止登錄到Web應用程序
- 28. 用於Web應用程序的Sql Server用戶登錄
- 29. Azure Web應用登錄
- 30. 使用ASP.Net Web應用程序進行單點登錄
謝謝你tomkani – venkiboss