J2EE社區

          茍有恒,何必三更起五更眠;
          最無益,只怕一日曝十日寒.
          posts - 241, comments - 318, trackbacks - 0, articles - 16

          log4j 獲取動態參數

          Posted on 2012-11-06 16:34 xcp 閱讀(4908) 評論(1)  編輯  收藏 所屬分類: JAVA

          在log中必須先了解log4j自帶的兩個類MDC和NDC

          NDC和MDC是log4j用于存儲應用程序的上下文信息(context infomation),從而便于在log中使用這些上下文信息。
          NDC采用了一個類似棧的機制來push存儲上下文信息,每一個線程都獨立地儲存上下文信息。比如說一個servlet就可以針對每一個request創建對應的NDC,儲存客戶端地址等等信息。相關的信息使用NDC.push(message);
          在log的時候將信息輸出。在相應的PatternLayout中使用”%x”來輸出存儲的上下文信息

          例如:String remoteAddr = request.getRemoteAddr();
          NDC.push(remoteAddr);
          在log4j.properties文件中作如下的配置即可
          log4j.appender.console.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss,SSS} [%X] -[%c]-[%p] %m%n


           


          MDC內部使用了類似map的機制來存儲信息,相對應的方法,MDC.put(key,value);在配置PatternLayout的時候使用:%x{key}來輸出對應的value
          例如:String remoteAddr = request.getRemoteAddr();
          MDC.put("ip", remoteAddr);
          在log4j.properties文件中作如下的配置即可
          log4j.appender.console.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss,SSS} [%X{ip}] -[%c]-[%p] %m%n

          總:如果在項目中有過濾器或者模板Action,你可以把獲取公共的屬性方法直接定義在里面,然后在配置文件中配置獲取顯示




          名稱: ?4C.ESL | .↗Evon
          口號: 遇到新問題?先要尋找一個方案乄而不是創造一個方案こ
          mail: 聯系我


          Feedback

          # re: log4j 獲取動態參數  回復  更多評論   

          2013-01-28 10:19 by re: log4j 獲取動態參數
          re: log4j 獲取動態參數
          主站蜘蛛池模板: 武宣县| 荆门市| 金阳县| 灵璧县| 定日县| 津南区| 黎平县| 正阳县| 奈曼旗| 革吉县| 虞城县| 久治县| 志丹县| 侯马市| 江西省| 古蔺县| 宁蒗| 江油市| 湘阴县| 柳江县| 太保市| 青浦区| 松江区| 宝应县| 汤阴县| 梁山县| 敦化市| 阿城市| 遵义县| 北海市| 嘉义市| 罗江县| 花莲市| 梅州市| 金乡县| 南宫市| 万全县| 资溪县| 筠连县| 万州区| 额敏县|