1. 程式人生 > 其它 >.net mvc 新增 log4net

.net mvc 新增 log4net

引用log4net日誌

1. 新增NuGet引用,搜尋net4log,並新增該引用

2.新增引用語句

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]

3.新增幫助類

public class LogHelper
    {
        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");//這裡的 loginfo 和 log4net.config 裡的名字要一樣
        public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");//這裡的 logerror 和 log4net.config 裡的名字要一樣
        public static void WriteLog(string info)
        {
            if (loginfo.IsInfoEnabled)
            {
                loginfo.Info(info);
            }
        }

        public static void WriteLog(string info, Exception ex)
        {
            if (logerror.IsErrorEnabled)
            {
                logerror.Error(info, ex);
            }
        }
    }

4.在log4net.config中新增配置

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <!-- Level的級別,由高到低 -->
  <!-- None > Fatal > ERROR > WARN > DEBUG > INFO > ALL-->
  <!-- 解釋:如果level是ERROR,則在cs檔案裡面呼叫log4net的info()方法,則不會寫入到日誌檔案中-->
  <log4net>
    <!--錯誤日誌類-->
    <logger name="logerror">
      <!--日誌類的名字-->
      <level value="ALL" />
      <!--定義記錄的日誌級別-->
      <appender-ref ref="ErrorAppender" />
      <!--記錄到哪個介質中去-->
    </logger>
    <!--資訊日誌類-->
    <logger name="loginfo">
      <level value="ALL" />
      <appender-ref ref="InfoAppender" />
    </logger>
    <!--錯誤日誌附加介質-->
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <!-- name屬性指定其名稱,type則是log4net.Appender名稱空間的一個類的名稱,意思是,指定使用哪種介質-->
      <param name="File" value="Log\\LogError\\" />
      <!--日誌輸出到exe程式這個相對目錄下-->
      <param name="AppendToFile" value="true" />
      <!--輸出的日誌不會覆蓋以前的資訊-->
      <param name="MaxSizeRollBackups" value="100" />
      <!--備份檔案的個數-->
      <param name="MaxFileSize" value="102400" />
      <!--當個日誌檔案的最大大小-->
      <param name="StaticLogFileName" value="false" />
      <!--是否使用靜態檔名-->
      <param name="DatePattern" value="yyyyMM\\yyyyMMdd\\yyyyMMdd&quot;.htm&quot;" />
      <!--日誌檔名-->
      <param name="RollingStyle" value="Composite" />
      <!--檔案建立的方式,這裡是以Date方式建立-->
      <!--下面的輸出樣式,自行修改-->
      <param name="Header" value="&#xA;----------------------header--------------------------&#xA;"/>
      <param name="Footer" value="&#xA;----------------------footer--------------------------&#xA;"/>
      <!--錯誤日誌佈局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n異常時間:%d [%t] &lt;BR&gt;%n異常級別:%-5p &lt;BR&gt;%n異 常 類:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />
      </layout>
    </appender>
    <!--資訊日誌附加介質-->
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="Log\\LogInfo\\" />
      <!-- 是否追加到檔案-->
      <param name="AppendToFile" value="true" />  
      <param name="MaxFileSize" value="102400" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyyMM\\yyyyMMdd\\yyyyMMdd&quot;.htm&quot;" />
      <param name="RollingStyle" value="Composite" />
      <!--下面的輸出樣式,自行修改-->
      <param name="Header" value="&#xA;----------------------header--------------------------&#xA;"/>
      <param name="Footer" value="&#xA;----------------------footer--------------------------&#xA;"/>
      <!--資訊日誌佈局-->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="&lt;HR COLOR=blue&gt;%n日誌時間:%d [%t] &lt;BR&gt;%n日誌級別:%-5p &lt;BR&gt;%n日 志 類:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;"  />
      </layout>
    </appender>
  </log4net>
</configuration>