日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java jee curd_Java / JEE中的有效日志记录–映射的诊断上下文

發布時間:2023/12/3 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java jee curd_Java / JEE中的有效日志记录–映射的诊断上下文 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java jee curd

這一切始于當我和一位同事坐在一起解決一些應用程序問題時,當我注意到一些有趣的事情時。 他正在合并代碼,我的眼睛吸引了此類“ org.apache.log4j.MDC”的注意。 這導致了以下發現:

什么是MDC?

MDC代表“ 映射診斷上下文” 。 它可以幫助您從多個來源中區分出交織日志。 讓我詳細解釋。 當給定的servlet收到多個用戶請求時,將使用線程為用戶的每個請求服務。 這使多個用戶登錄到相同的日志文件和日志

語句混雜在一起。 現在,要過濾出特定用戶的日志,我們需要將user-id附加到日志語句中,以便我們可以在日志文件中grep(search)它們,以使其具有某種意義。 一種明顯的日志記錄方式是在日志語句中附加用戶ID,即log.info(userId +“ logged something”); 一種非侵入式的日志記錄方式是使用MDC。 使用MDC,您可以將用戶ID放在一個上下文映射中,該上下文映射由記錄器附加到(每個用戶請求的)線程上。 MDC是線程安全的,并且在內部使用Map來存儲上下文信息。[ 禮貌:Kalyan Dabburi ]

如何使用MDC?

一個。 配置信息,該信息需要作為ConversionPattern的一部分記錄在log4j.xml中(在這種情況下為user-id)。

log4j.appender.consoleAppender.layout.ConversionPattern = %d %i - %m - %X{user-id}%n

b。 在您各自的類中,在開始處理用戶請求之前,請將實際的用戶ID放在context(MDC)中。

MDC.put("user-id","SKRS786");

C。 在處理結束時,從MDC中刪除上下文信息。

MDC.remove("user-id");

資源:

  • 登錄執行
  • Log4J實施

使用MDC或NDC的哪一個?

NDC代表嵌套診斷上下文 。 它是附加上下文信息的基于堆棧的實現。 出于所有目的,請在NDC上使用MDC,因為MDC可以提高內存效率。 有關詳細的比較, 請單擊此處 。

對于所有新的應用程序開發,請使用logback 。 logback是SLF4J的運行時實現。 如果您具有Log4J的現有應用程序,仍然值得切換到logback 。 有關詳細說明, 請單擊此處 。 要了解Java和JEE世界中日志記錄的發展,請參閱Micheal Andrews的這篇文章 。

參考: Bemused博客上我們JCG合作伙伴 Srinivas Ovn的Java / JEE有效登錄 。

翻譯自: https://www.javacodegeeks.com/2013/01/effective-logging-in-javajee-mapped-diagnostic-context.html

java jee curd

總結

以上是生活随笔為你收集整理的java jee curd_Java / JEE中的有效日志记录–映射的诊断上下文的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。