什麼是NDC日誌以及我們如何在我們的應用程序中使用它以及它的意義是什麼...什麼是NDC日誌以及我們如何在我們的應用程序中使用它,以及那個意義是什麼
3
A
回答
2
NDC代表「嵌套診斷上下文」,它是log4j的一項功能。 log4j最常見的用法就是記錄東西,而沒有指明它是哪個客戶端請求的一部分,結果是,當你的應用程序在併發請求中運行時,所有請求的所有日誌消息混雜在一起日誌文件並告訴誰做了什麼是不可能的。 NDC允許您將日誌消息標記爲屬於特定客戶端,以便您可以區分誰正在做什麼,而不必爲每個客戶端分別設置日誌記錄器。
3
嵌套診斷上下文特定於線程。
常見的用途是用於記錄信息每個會話(如果一個線程用於會話),這樣你就可以登錄原始客戶端,用戶名等和其他跨領域無屬性:
- 將這些屬性通過應用程序的各個層
- 將它們顯式記錄在每個日誌語句中。如果
PatternLayout
已適當配置,Log4j將輸出NDC。
另請參閱Log4j的映射診斷上下文。
1
記錄器通常是靜態定義在代碼中,這使得日誌有時很難理解。
的NDC允許動態push
將顯示由線程發出以後每日誌行參數,直到pop
PED。
有用的,如果你想有一個日誌,如:
[request=x] a
[request=y] a
[request=x] b
[request=x] c
[request=y] b
[request=x] d
[request=y] c
[request=y] d
(聲明:我不記得確切的格式)
只需a,b,c,d
這是很難理解的線程做什麼。如果push
和pop
請求標識是動態的,那麼它更容易遵循。也可以用於其他類型的上下文信息。
相關問題
- 1. NSStringDrawingUsesDeviceMetrics標誌的含義是什麼以及我們如何使用它?
- 2. 什麼是服務器日誌以及如何生成它們?
- 3. 什麼是MDAC以及如何我們可以在程序中使用
- 4. 什麼是MySql工作臺以及我們使用它的目的是什麼?
- 5. 什麼是切換按鈕以及我們什麼時候可以使用它?
- 6. 在tomcat中,什麼是catalina_home以及我們爲什麼使用它?
- 7. 什麼是IntelliJ中的「手錶」以及如何使用它們?
- 8. 什麼是PHP中的Iterables以及我們爲什麼使用它?
- 9. 什麼是armeabi以及他們爲什麼使用它
- 10. ObjectSpace - 它是什麼以及人們如何使用它?
- 11. 我們應該使用clone還是BeanUtils.copyProperties以及爲什麼
- 12. 什麼是intvectors以及如何閱讀/使用它們?
- 13. 什麼是StringIndexer,VectorIndexer以及如何使用它們?
- 14. 這些是什麼以及如何使用Ruby刪除它們?
- 15. Symfony中的助手是什麼以及我們如何創建它們?
- 16. SQL,Postgres OID,它們是什麼以及它們爲什麼有用?
- 17. 什麼是MVC架構的主要用法以及爲什麼我們要在MVH中使用iphonic應用程序以及它的幫助如何?
- 18. 什麼是ResourceContainers以及如何將它們用於雲端點?
- 19. 什麼是NULL值,以及如何在SQLite中處理它們
- 20. AngularJs Material中的defaultIconSet()是什麼以及我如何使用它?
- 21. 何時以及爲什麼我們應該使用類System.ComponentModel.Container?
- 22. 什麼是BitBucket中的分支以及如何管理它們
- 23. PHP庫 - 它們是什麼,以及如何創建一個
- 24. std :: function和std :: bind:它們是什麼以及它們何時被使用?
- 25. WOFF字體,它們是什麼以及爲什麼要關心?
- 26. 什麼是表達樹,您如何使用它們,以及爲什麼要使用它們?
- 27. 什麼是InputStream和輸出流?爲什麼以及何時使用它們?
- 28. Magento的自定義模塊(它們是什麼以及誰可以寫他們)
- 29. 我們在哪裏以及爲什麼在PHP中使用__toString()?
- 30. 什麼是程序 - 這個叫什麼,我如何在C++中使用它們?