一、從Nuget下載lognet.dll
找到log4net之后,單擊log4net,右側會出現你的項目,勾選要安裝的項目,然后點擊“安裝”。
二、打開app.config,進行如下設置
<?xml version="1.0" encoding="utf-8"?> <configuration> <!--<startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/> </startup>--> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <!--定義輸出到文件中--> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--定義文件存放位置--> <file value="Log\\Error\\"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"/> <staticLogFileName value="false"/> <param name="MaxSizeRollBackups" value="100"/> <layout type="log4net.Layout.PatternLayout"> <!--每條日志末尾的文字說明--> <!--輸出格式--> <!--樣例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--> <conversionPattern value="%newline %n記錄時間:%date %n線程ID:[%thread] %n日志級別: %-5level %n出錯類:%logger property: [%property{NDC}] - %n錯誤描述:%message%newline %n"/> </layout> </appender> <root> <level value="ERROR"/> <!--文件形式記錄日志--> <appender-ref ref="RollingLogFileAppender"/> </root> </log4net> </configuration>
以上設置中
<file value="Log\\Error\\"/>
<datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"/>
代表生成路徑及格式為:Log\\Error\\yyyy\\yyyyMM\\yyyyMMdd.txt
如有需要,可自行修改。
三、WPF:在項目中找到Properties文件夾中找到AssemblyInfo.cs ,設置log4net
Winform:在項目中找到Program.cs,在Main函數中設置log4net
WPF:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]

Winform:
log4net.Config.XmlConfigurator.Configure();
以上是Winform程序和WPF程序使用log4net的唯一區別點。
四、建立調用對象。建log類。
public static class LogTools { /// <summary> /// 用來記錄error和warn /// </summary> public static log4net.ILog ErrorWarnLog = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); }
五、程序中應用案例
有個地方要注意,調用方式是LogTools.ErrorWarnLog.Error(e),不是LogTools.ErrorWarnLog.Error(e.Message),一開始我是錯誤的寫法,記錄的Error信息異常,導致我找了半天,在此提醒下大家。
/// <summary> /// 線程工作步驟 /// </summary> private void Working() { try { while (true) { //線程步驟,略 } } catch (Exception e) { LogTools.ErrorWarnLog.Error(e); } }
六、log信息
完~