摘要:[筆記]log4net使用自訂變數寫log (log4net.MDC)
前言:
之前在重整前人的程式,前輩指示把一些重要的LOG拋出來,以後比較好追問題
然後我就傻傻的把參數都這樣寫
結果我每段log.Info都要改
後來前輩說不需要這樣,可以自訂參數,我就去問一下估狗大神
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{}包住參數,之前找不到亂設都沒有效果
產生出來的效果如下