log4net應用

浪花一朵朵發表於2014-07-05

log4net是.Net下一個非常優秀的開源日誌記錄元件。log4net記錄日誌的功能非常強大。它可以將日誌分不同的等級,以不同的格式,輸出到不同的媒介。

日誌分類:

1,Info

2,Debug

3,Warn

4,Error

5,Fatal 

儲存型別:

ADONetAppender  資料庫方式
SmtpAppender  發郵件
LogFileAppender  伺服器端日誌檔案
ColoredConsoleAppender  還沒用過
EventLogAppender windows日誌
NetSendAppender
RollingFile 還沒用過

先看效果:

檔案儲存

資料庫儲存

郵件儲存

本文主要是簡單的介紹怎麼使用:

第一步:新增引用

第二步:新增配置 ,在Web.config 檔案中進行新增configSections的節點 如下圖所示,

第三步:新增日誌配置型別及儲存型別,如果是資料庫儲存需要提前建好資料表,配置好資料庫連線字串,檔案儲存需要指定日誌檔案路徑和檔名,郵件傳送需要配置郵件協議,具體會在程式碼中有,

  <log4net debug="true">
    <!--<logger name="logerror">
      <level value="ERROR" />
      <appender-ref ref="ADONetAppender" />
    </logger>
    <logger name="loginfo">
      <level value="INFO" />
      <appender-ref ref="InfoAppender" />
    </logger>-->
    <logger name="Loggering">
      <level value="Warn"/>
      <appender-ref ref="ADONetAppender"/>
    </logger>
    <root>
      <level value="info" />
      <!--<appender-ref ref="ADONetAppender" />-->
      <appender-ref ref="ADONetAppender"/>
      <!--<appender-ref ref="LogFileAppender"/> 
          <appender-ref ref="ColoredConsoleAppender"/> 
          <appender-ref ref="EventLogAppender"/> 
          <append-ref ref="NetSendAppender"/> 
          <appender-ref ref="RollingFile"/>-->
    </root>

    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="C:\App_Log\ErrorLog.log" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaximumFileSize" value="1MB" />
      <param name="RollingStyle" value="Size" />
      <param name="StaticLogFileName" value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
      </layout>
    </appender>
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="C:App_Log\InfoLog.log" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaximumFileSize" value="1MB" />
      <param name="RollingStyle" value="Size" />
      <param name="StaticLogFileName" value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
      </layout>
    </appender>
  </log4net>

檔案路徑配置:

  檔案路徑配置

郵件配置

資料庫配置

create table _log 
( 
    id int identity(1,1) primary key not null, 
    date datetime null, 
    thread int null, 
    level varchar(10) null, 
    logger varchar(20) null, 
    Message varchar(100) null, 
    Exception varchar(100) null 
)

資料庫日誌表指令碼

第四步:寫日誌

gloab.asax.cs檔案 中Application_Start()方法裡第一行加:

 log4net.Config.XmlConfigurator.Configure();

再在要記錄的日誌檔案里加日誌記錄,如下所示

   private static readonly log4net.ILog log =
log4net.LogManager.GetLogger("Loggering"); 
 string message = string.Format("錯誤訊息:{0},方法名:{1},引數:{2}", ex.Message, "JsonResult Login", Request.Params.ToString());
                log.Debug(message);
                log.Error(message);
                log.Fatal(message);
                log.Warn(message);
                log.Info(message);

demo下載

 

 

 

相關文章