記日雜-log4net組件使用

下面我給你們介紹一下記日雜-log4net組件使用,當程序發佈有服務器上,有時出現了錯誤, 都不知道出如今那,因此log4net組件很好解決這個問題。服務器

一、添加開發包,並對log4net.dll的引用mvc

二、在Web.Config (或App.Config)添加配置,app

<configSections><!--必定要在全部節點以前-->調試

    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>日誌

</configSections>orm

  三、新增log4net 節點對象

  <log4net>開發

    <root>io

      <!-- 日誌級別 OFF(關閉),FATAL,ERROR,WARN,INFO,DEBUG,ALL(所有顯示) -->配置

      <level value="ALL" />

      <appender-ref ref="RollingFileTracer" />

    </root>

    <!-- Print only messages of level DEBUG or above in the packages -->

    <appender name="RollingFileTracer" type="log4net.Appender.RollingFileAppender,log4net"> <!--RollingFileAppender 表示滾動日誌信息-->

      <param name="File" value="App_Data/Log/" /> <!--日誌信息保存的位置-->

      <param name="AppendToFile" value="true" />  <!--是不是附加文件,true爲在原來文件上追加內容-->

      <param name="RollingStyle" value="Date" />  <!--文件根據什麼來滾動儲存, 這裏是根據時間-->

      <param name="MaxSizeRollBackups" value="10" /> <!--最多有多少個文件,當大於這個數, 就會把最早的文件刪除-->

      <param name="MaximumFileSize" value="1MB" />  <!--每一個文件最大大小-->

      <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" /> <!--日誌文件名格式-->

      <param name="StaticLogFileName" value="false" />

      <layout type="log4net.Layout.PatternLayout,log4net">

        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> <!--輸出格式-->

      </layout>

    </appender>

  </log4net>

 

能夠對訪問級別進行控制, 調用時能夠設爲all 這樣調試信息都會輸出到日誌文件中, 待程序穩定後,設爲Warn  這樣調試信息不會輸出到日誌文件中, 同時也不用修改代碼

 

四、初始化:在Global的Application_Start中寫(程序啓動的時候讀取配置)

  log4net.Config.XmlConfigurator.Configure();

注意:必定要加入這個, 沒有加雖然8不會報錯可是不會任何效果

 

五、在Global的Application_Error記錄未處理的異常信息

    例:ILog ilog = LogManager.GetLogger(typeof(Global));

         ilog.Error("系統發生未處理的異常信息",Context.Error);

         在mvc裏面能夠手動添加這個方法

       protected void Application_Error(object sender, EventArgs e)

        {

            //當系統中發生未處理的異常信息, 這個方法會被調用

            ILog ilog = LogManager.GetLogger(typeof(MvcApplication));

            ilog.Error("系統發生未處理的異常信息", Context.Error);

        }

 

在要打印日誌的地方LogManager.GetLogger(typeof(Program)).Debug("信息");

經過LogManager.GetLogger傳遞要記錄的日誌類類名得到這個類的ILog(這樣在日誌文件中就能看到這條日誌是哪一個類輸出的了),而後調用Debug方法輸出消息。

 

由於一個類內部不止一個地方要打印日誌,因此通常把ILog聲明爲一個static字段。

輸出錯誤信息用ILog.Error方法,第二個參數能夠傳遞Exception對象。log.Error("***錯誤"+ex),log.Error("***錯誤",ex)

 

 

 

例:

 private static ILog ilog = LogManager.GetLogger(typeof(WebForm1));

 protected void Page_Load(object sender, EventArgs e)

 {

         ilog.Debug("調試信息");

     ilog.Info("信息");

     ilog.Warn("警告信息");

     ilog.Error("錯誤信息");

     ilog.Fatal("嚴重信息");

  } 

相關文章
相關標籤/搜索