[筆記]log4net使用自訂變數寫log (log4net.MDC)

  • 3632
  • 0

摘要:[筆記]log4net使用自訂變數寫log (log4net.MDC)

前言:

之前在重整前人的程式,前輩指示把一些重要的LOG拋出來,以後比較好追問題

然後我就傻傻的把參數都這樣寫

結果我每段log.Info都要改sad

後來前輩說不需要這樣,可以自訂參數,我就去問一下估狗大神

http://logging.apache.org/log4net/release/sdk/log4net.MDC.html =>log4net.MDC

http://hamang.net/2008/12/12/using-log4net-in-web-applications-a-reallife-example/ =>有人提供範例

實作:

在需告Logger的時候,把變數加入


            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory + "\\" + Address + ".config"));
            log4net.ILog mLoger = log4net.LogManager.GetLogger(Address);

            log4net.MDC.Set("sport", LocalTCPPort);
            log4net.MDC.Set("cport", RemoteTCPPort);
            log = mLoger;

接下來要注意的是config的設定


      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d{yyyy-MM-dd HH:mm:ss,fff} [%t] %X{sport}:%X{cport} %-5p - %m%n" />
      </layout>

要注意要用%X{}包住參數,之前找不到亂設都沒有效果

產生出來的效果如下