隨筆 - 22, 文章 - 0, 評論 - 1, 引用 - 0
          數據加載中……

          logback_doc_manual_08_mapped_diagnostic_contexts

          http://logback.qos.ch/manual/mdc.html
          MDC(注意這個類在org.slf4j包里)
               基于“多個線程同步處理多個請求”的假設來設計的,上下文信息記錄。
                    ——子線程會自動拷貝雙親線程的這類信息。
                    ——如果沒有附加處理的話,放入線程池處理的任務會丟失MDC上下文。
                    該設計假定向MDC放數據的速度不會太快。
          最常用的web場景,是集成在一個servlet的Filter中,在請求時載入MDC信息,doFilter處理完成后卸載MDC信息。
          ——最好在“驗證用戶”這個Filter之后(或者之中)進行,這樣可以把用戶驗證信息(包括但不限于用戶名)寫入MDC。
          交給線程池處理(submit)之前:MDC.getCopyOfContextMap(),把返回的map當作參數傳給任務線程
          線程池處理代碼的第一行:MDC.setContextMapValues(),把接到的map參數設置到本線程的MDC中(別忘了最后清除掉)
          MDCInsertingServletFilter
               將web請求常用信息設置到MDC中:
                    req.remoteHost as returned by the getRemoteHost() method
                    req.xForwardedFor value of the "X-Forwarded-For" header
                    req.requestURI       as returned by getRequestURI() method
                    req.requestURL as returned by getRequestURL() method
                    req.queryString as returned by getQueryString() method
                    req.userAgent      value of the "User-Agent" header
               web.xml中的配置
          <filter>
            <filter-name>MDCInsertingServletFilter</filter-name>
            <filter-class>
              ch.qos.logback.classic.helpers.MDCInsertingServletFilter
            </filter-class>
          </filter>
          <filter-mapping>
            <filter-name>MDCInsertingServletFilter</filter-name>
            <url-pattern>/*</url-pattern>
          </filter-mapping> 
               注意filter順序,經過該filter過濾之后,其它filter才能打印出MDC信息(特別是struts之類依賴filter處理主邏輯的)
               使用例子:
               %X{req.remoteHost} %X{req.requestURI}%n%d - %m%n
               ——其實沒多大意義,還是自己寫這個filter,挑選自己的有效信息比較好。

          posted on 2014-07-13 18:59 王星游 閱讀(371) 評論(0)  編輯  收藏 所屬分類: java

          主站蜘蛛池模板: 绍兴市| 卢龙县| 昆明市| 太仓市| 邛崃市| 沅江市| 富顺县| 松原市| 白玉县| 得荣县| 绥德县| 仁布县| 阜新市| 奈曼旗| 浙江省| 尤溪县| 镇江市| 平江县| 荥阳市| 筠连县| 威远县| 安陆市| 镇江市| 白银市| 栖霞市| 招远市| 牡丹江市| 浦江县| 剑川县| 林口县| 大足县| 鸡西市| 汝南县| 会泽县| 石城县| 惠州市| 江北区| 连平县| 祥云县| 富源县| 西昌市|