記日雜-log4net組件使用

來源:互聯網
上載者:User

標籤:大小   configure   maxsize   except   int   滾動   輸出   art   cat   

下面我給大家介紹一下記日雜-log4net組件使用,當程式發布有伺服器上,有時出現了錯誤, 都不知道出現在那,所以log4net組件很好解決這個問題。

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

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

<configSections><!--一定要在所有節點之前-->

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

</configSections>

  3、新增log4net 節點

  <log4net>

    <root>

      <!-- 記錄層級 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  這樣調試資訊不會輸出到記錄檔中, 同時也不用修改代碼

 

4、初始化:在Global的Application_Start中寫(程式啟動的時候讀取配置)

  log4net.Config.XmlConfigurator.Configure();

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

 

5、在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("嚴重資訊");

  } 

記日雜-log4net組件使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.