Logging 決定了一個application 質素. 在適當地方加入log, 會令troubleshooting 事半功倍, 並可以確保application 的效能. 在示範中, 會使用Log4net, 一個常用的logging library.
先建立一個config file, 並命名為log4net.config. 內容如下:
<?xml version="1.0" encoding="utf-8" ?> <log4net> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="LogFiles/"/> <!-- File Path--> <staticLogFileName value="false"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="yyyyMMdd.lo\g"/> <!--log file name--> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%-5p %date{yyyy/MM/dd HH:mm:ss} %-20c{1} %-20M %m%n" /> </layout> </appender> <root> <level value="ALL"/> <appender-ref ref="RollingFileAppender"/> </root> </log4net>
之後在App.xml.cs 中, override 原有的 OnStartup() 如下.
public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(System.IO.Path.GetFullPath("./log4net.config"))); base.OnStartup(e); } }
在須要落Log 的class 中, 加入以下property, 須留意是若將它設於base class 中, log的 child class method call 會記下base class 名字.
private static ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Leave a Reply