WinForm和WPF使用log4net


一、從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信息

完~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM