在c#中使用log4net

1.從log4net官網下載最新的log4net.dllapp

 

2.設置配置文件在app.config佈局

<?xml version="1.0"?>
<configuration>
    <configSections>
        <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
    </configSections>
<log4net debug="false">

    <!--使用Rolling方式記錄日誌按照日來記錄日誌-->
    <appender name="RunLog" type="log4net.Appender.RollingFileAppender">
      <!--文件名,能夠相對路徑,也能夠絕對路徑,這裏只給定了文件夾-->
      <file value="log\\runtime\\" />
      <!--最小鎖定模型以容許多個進程能夠寫入同一個文件,解決文件獨佔問題-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <!--是否增長文件-->
      <appendToFile value="true" />
      <!--日誌追加類型,Date爲按日期增長文件,Size爲按大小-->
      <rollingStyle value="Date" />
      <!--文件命名格式,非日期參數化要進行轉義,如自定義文件後綴-->
      <datePattern value="yyyyMM\\yyyy-MM-dd&quot;.log&quot;" />
      <!--是否固定文件名-->
      <staticLogFileName value="false" />
      <!--內容佈局-->
      <layout type="log4net.Layout.PatternLayout">
        <!--頭部-->
        <header value="----------------------header--------------------------&#13;&#10;"/>
        <!--結尾-->
        <footer value="----------------------footer--------------------------&#13;&#10;"/>
        <!--輸出格式化-->
        <conversionPattern value="當前時間:%d [%p] %m %n" />
      </layout>
      <!--過濾器-->
      <filter type="log4net.Filter.LevelRangeFilter">
        <!--只接受最小等級與最大等級之間的日誌輸出,這裏只接受INFO級別的輸出-->
        <param name="LevelMin" value="INFO" />
        <param name="LevelMax" value="INFO" />
      </filter>
    </appender>

    <appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
      <file value="log\\error\\" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyyMM\\yyyy-MM-dd&quot;.log&quot;" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <header value="----------------------header--------------------------&#13;&#10;"/>
        <footer value="----------------------footer--------------------------&#13;&#10;"/>
        <conversionPattern value="當前時間:%d 錯誤類型:[%p]  信息:%m  所在類:%F 所在行:%L %n" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <!--只接受最小等級與最大等級之間的日誌輸出,其餘的被過濾,這裏接受WARN(警告),ERROR(錯誤),FATAL(致命)級別的輸出-->
        <param name="LevelMin" value="WARN" />
        <param name="LevelMax" value="FATAL" />
      </filter>
    </appender>

    <!--定義日誌的輸出媒介-->
    <root>
      <!--RollingFileAppender事件日誌-->
      <appender-ref ref="RunLog" />
      <appender-ref ref="ErrorLog" />
    </root>

  </log4net>
 
<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>

 

3.在Properties/AssemblyInfo.cs,添加下面一個代碼spa

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

 

4.在程序中使用debug

//日誌
        private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

//記錄程序啓動
 log.Info("程序啓動");

//記錄程序發生錯誤
log.Error("發生錯誤:HttpListener已經被關閉");
相關文章
相關標籤/搜索