国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

log4net日志的配置及簡單應用

2019-11-14 16:34:03
字體:
來源:轉載
供稿:網友

在程序運行中,往往會出現各種出乎開發人員意料的異?;蛘咤e誤,所以,記錄詳細的程序運行日志信息,有利于開發人員和運維人員排查異常信息,提高工作效率。而本菜鳥在大神推薦和指導下使用log4net這一插件工具,其中也學到了一些皮毛,所謂好記性不如爛筆頭嘛。為此,將把這些心得體會記錄下來,以免遺忘。同時,也為各位童鞋提供一些參考。在此聲明,本文粗淺之極,大神莫入。

 

對于log4net有什么功能,這里就不贅述了。直接進入本文重點,也就是log4net的配置和簡單使用。

首先,項目要引入log4net.dll。

 

然后,為項目增加配置文件——log4net.config

 

<log4net><!--日志配置,按日期保存-->  <appender name="DefaultLog" type="log4net.Appender.RollingFileAppender">    <file value="LogFiles/" />    <threshold value="WARN" />    <appendToFile value="true" />    <maxSizeRollBackups value="-1" />    <maximumFileSize value="30MB" />    <rollingStyle value="Composite" />    <datePattern value='yyyy-MM-dd".log"' />    <staticLogFileName value="false" />    <layout type="log4net.Layout.PatternLayout">      <header value="-----------程序開始運行-----------" />      <footer value="-----------程序結束運行-----------" />      <conversionPattern value="%date [%thread] %-5level %logger - %message%n" />    </layout>  </appender>  <!--日志配置,按日期保存-->  <appender name="BaseLog" type="log4net.Appender.RollingFileAppender">    <file value="LogFiles/" />    <appendToFile value="true" />    <maxSizeRollBackups value="-1" />    <maximumFileSize value="30MB" />    <rollingStyle value="Composite" />    <datePattern value='yyyy-MM-dd".log"' />    <staticLogFileName value="false" />    <layout type="log4net.Layout.PatternLayout">      <header value="-----------程序開始運行-----------" />      <footer value="-----------程序結束運行-----------" />      <conversionPattern value="%date [%thread] %-5level - %message%newline" />    </layout>  </appender>  <!--控制臺日志配置,按日期保存-->  <appender name="ConsoleLog" type="log4net.Appender.RollingFileAppender">    <file value="LogFiles/" />    <appendToFile value="true" />    <maxSizeRollBackups value="-1" />    <maximumFileSize value="30MB" />    <rollingStyle value="Composite" />    <datePattern value='yyyy-MM-dd".log"' />    <staticLogFileName value="false" />    <layout type="log4net.Layout.PatternLayout">      <header value="-----------程序開始運行-----------" />      <footer value="-----------程序結束運行-----------" />      <conversionPattern value="%date [%thread] %-5level - %message%newline" />    </layout>  </appender>  <!--窗體日志配置,按日期保存-->  <appender name="FromLog" type="log4net.Appender.RollingFileAppender">    <file value="LogFiles/" />    <appendToFile value="true" />    <maxSizeRollBackups value="-1" />    <maximumFileSize value="30MB" />    <rollingStyle value="Composite" />    <datePattern value='yyyy-MM-dd".log"' />    <staticLogFileName value="false" />    <layout type="log4net.Layout.PatternLayout">      <header value="-----------程序開始運行-----------" />      <footer value="-----------程序結束運行-----------" />      <conversionPattern value="%date [%thread] %-5level - %message%newline" />    </layout>  </appender>  <!-- 根級別,作為默認值 -->  <root>    <!--        OFF   - 不輸出任何日志        FATAL - 僅輸異常        ERROR - 輸出錯誤/異常信息        WARN  - 輸出警告/錯誤/異常信息        INFO  - 輸出普通/警告/錯誤/異常信息,默認        DEBUG - 輸出調試/普通/警告/錯誤/異常信息        ALL   - 與DEBUG相同    -->    <level value="WARN" />    <!--如果找不到對應的logger,會自動使用這個默認的日志-->    <appender-ref ref="DefaultLog" />  </root>  <logger name="MyLog.Base.Log">    <level value="DEBUG" />    <appender-ref ref="BaseLog" />  </logger>  <logger name="MyLog.Base.Console">    <level value="DEBUG" />    <appender-ref ref="ConsoleLog" />  </logger>    <logger name="MyLog.Base.Form">    <level value="DEBUG" />    <appender-ref ref="FromLog" />  </logger></log4net>

 

 

在此,簡單解釋上面配置文件的使用,首先是<appender/>和<logger/>節點必須成對,每對配置,就是一個日志輸出的配置。<appender-ref ref="BaseLog" />中屬性ref的值對應<appender>的屬性name的值。而<layout/>中的信息為日志輸出的格式信息。其他的,就不一一解釋了。

配置文件完成以后,為了讓log4跑起來,還需要添加一個調用類——Logger。

 

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;using log4net;namespace Base{    public  class Loggers    {        public static readonly ILog FormLogger = LogManager.GetLogger("MyLog.Base.Form");        public static readonly ILog ConsoleLogger = LogManager.GetLogger("MyLog.Base.Console");        public static readonly ILog BaseLogger = LogManager.GetLogger("MyLog.Base.Log");    }}



 

 

值得注意的是,上面類中GetLogger("MyLog.Base.Log")中“MyLog.Base.Log”必須和配置文件中<loggger name="MyLog.Base.Log">的name屬性值保持一致。
之后,為了讓log4net跑起來,還需要添加代碼來加載log4net配置文件,根據大神的傳授,有兩種加載方法:

 

 

1、在程序文件AssemblyInfo.cs中加上

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

 

2、在程序load事件中加上

 //讀取log4net配置文件              log4net.Config.XmlConfigurator.Configure(new Uri(AppDomain.CurrentDomain.SetupInformation.applicationBase + "log4net.config"));

 

P.S:方法一我沒有實現成功,可能是因為某些問題我沒有發現,哪位童鞋知道原因可以告知我一下。不過方法二的使用成功了。

最后就是寫入信息到文件的問題了,其實就一句代碼:

 

 

Loggers.BaseLogger.Debug("Run Start");

 

 

同時,我們還可以根據日志輸出的級別來選取輸出的方法,日志的輸出級別如下:

        OFF   - 不輸出任何日志
        FATAL - 僅輸異常
        ERROR - 輸出錯誤/異常信息
        WARN  - 輸出警告/錯誤/異常信息
        INFO  - 輸出普通/警告/錯誤/異常信息,默認
        DEBUG - 輸出調試/普通/警告/錯誤/異常信息
        ALL   - 與DEBUG相同

 

本文完。

附注:log4net下載地址:點擊打開鏈接


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 寿阳县| 江华| 哈巴河县| 新余市| 定陶县| 关岭| 江源县| 三明市| 鸡西市| 合江县| 西峡县| 中山市| 青冈县| 海兴县| 浠水县| 黔江区| 神木县| 泗洪县| 穆棱市| 噶尔县| 衡东县| 县级市| 双城市| 灵台县| 荣成市| 若尔盖县| 苍梧县| 宜宾县| 乌拉特后旗| 辽阳县| 绥芬河市| 临高县| 抚宁县| 桃江县| 南宫市| 德昌县| 枞阳县| 九龙县| 徐水县| 阿坝县| 北辰区|