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

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

Log4Net 全方位跟蹤程序運行

2019-11-17 01:28:12
字體:
來源:轉載
供稿:網友

Log4Net 全方位跟蹤程序運行

原文:http://kb.VEVb.com/page/100968/

1.Log4Net 簡單使用

  使用Log4net必須引入log4net.dll 文件,因為log4net 是開源的,所以可以直接將源碼添加到工程項目中去。然后生成新的dll文件。

  下面使用配置一個最簡單的文件輸出和控制臺輸出。

  Log4Net 的配置文件,此段內容添加到App.config 或者 web.config 文件中:

<configSections>    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>  </configSections>  <log4net>    <appender name="FileAppender" type="log4net.Appender.FileAppender">      <file value="D:/a.log"></file>      <appendToFile value="true"></appendToFile>      <layout type="log4net.Layout.PatternLayout">        <conversionPattern value="[%d]:%n%m%n"></conversionPattern>      </layout>    </appender>    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">      <layout type="log4net.Layout.PatternLayout">        <conversionPattern value="[%d]:%n%m%n"></conversionPattern>      </layout>    </appender>    <root>      <level value="INFO"></level>      <appender-ref ref="FileAppender"></appender-ref>      <appender-ref ref="ConsoleAppender"></appender-ref>    </root>    <logger name="MyLogger">      <level value="ERROR"></level>      <appender-ref ref="FileAppender"></appender-ref>      <appender-ref ref="ConsoleAppender"></appender-ref>    </logger>  </ log4net>

2.Log4Net 結構

Log4net 主要分為5個核心組件: Logger, Appender, Filter, Layout, Object Render。

  Logger:

  主要用于記錄日志的分類和控制日志的級別。它可以以多種格式輸出日志信息,同時它也可以控制日志的輸出級別。上面的簡單例子我們看似做了日志輸出,但是沒有輸出任何日志結果,因為我們在日志級別上做了限制。

  Appender:

  這里我們簡單稱之為“附著器”。意思就是說日志的輸出必須依賴于它,更確切的說以文本形式輸出,還是控制臺格式輸出都必須要依靠它來控制。Log4net定義了多種附著器:

  (1) AdoNetAppender 將日志記錄到數據庫中??梢圆捎肧QL和存儲過程兩種方式 。

  (2) AnsiColorTerminalAppender 在ANSI 窗口終端寫下高亮度的日志事件。

  (3) aspNetTraceAppender 能用asp.net中Trace的方式查看記錄的日志。

  (4) BufferingForwardingAppender 在輸出到子Appenders之前先緩存日志事件。

  (5) ConsoleAppender 將日志輸出到控制臺。

  (6) EventLogAppender 將日志寫到Windows Event Log。

  (7) FileAppender 將日志寫到文件中。

  (8) MemoryAppender 將日志存到內存緩沖區。

  (9) NetSendAppender 將日志輸出到Windows Messenger service,這些日志信息將在用戶終端的對話框中顯示。

  (10) RemoteSyslogAppender 通過UDP網絡協議將日志寫到Remote syslog service。

  (11) RemotingAppender 通過.NET Remoting將日志寫到遠程接收端。

  (12) RollingFileAppender 將日志以回滾文件的形式寫到文件中。

  (13) SmtpAppender 將日志寫到郵件中。

  (14) TraceAppender 將日志寫到.NET trace 系統。

  (15) UdpAppender 將日志connectionless UDP datagrams的形式送到遠程宿主或以UdpClient的形式廣播。

  Filter:

  Appender 是將日志以缺省值的方式輸出,意思就是按照默認值的方式輸出。而Filter 意思就是過濾器,使用Filter 可以將日志以不同格式來輸出。

  Layout:

  這個用于控制日志輸出顯示格式。

  Object Render:

  用于按照用戶自定義標準來輸出日志。

  Log4net 結構圖 (從其他地方截圖過來)

  

Log4net 的日志對象管理器LogManager:LogManager是用于來管理所有的Logger對象的,GetLogger() 可以用來查找已經存在的Logger對象,如果對象不存在它會自動創建一個Logger對象,并且管理它。

3.Log4Net 日志級別

Log4net 分為如下幾個級別:

  FATAL 毀滅級別

  ERROR 錯誤級別

  WARN 警告級別

  INFO 消息級別

  DEBUG 調試級別

  這幾種日志級別高低:FATAL> ERROR> WARN > INFO > DEBUG。

  只有日志輸出級別大于或等于配置的級別才能輸出日志信息。

  比如我的日志配置級別為INFO,那么只有log.Info(), log.Warn(), log.Error(), log.Fatal()才能輸出日志信息,Debug方式就不能輸出。

  Log4net中還有兩種特殊的配置級別: ALL - 允許所有的日志級別輸出,OFF - 拒絕所有的日志級別輸出。

4.Log4Net 配置說明

<configSections>    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/></configSections><log4net>    <!--記錄日志到數據庫-->    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">      <bufferSize value="100" />      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />      <connectionString value="data source=GAS-HECHEN;initial catalog=dsc141051_db;integrated security=false;persist security info=True;User ID=sa;PassWord=000000" />      <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />      <parameter>        <parameterName value="@log_date" />        <dbType value="DateTime" />        <layout type="log4net.Layout.RawTimeStampLayout" />      </parameter>      <parameter>        <parameterName value="@thread" />        <dbType value="String" />        <size value="255" />        <layout type="log4net.Layout.PatternLayout">          <conversionPattern value="%thread" />        </layout>      </parameter>      <parameter>        <parameterName value="@log_level" />        <dbType value="String" />        <size value="50" />        <layout type="log4net.Layout.PatternLayout">          <conversionPattern value="%level" />        </layout>      </parameter>      <parameter>        <parameterName value="@logger" />        <dbType value="String" />        <size value="255" />        <layout type="log4net.Layout.PatternLayout">          <conversionPattern value="%logger" />        </layout>      </parameter>      <parameter>        <parameterName value="@message" />        <dbType value="String" />        <size value="4000" />        <layout type="log4net.Layout.PatternLayout">          <conversionPattern value="%message" />        </layout>      </parameter>      <parameter>        <parameterName value="@exception" />        <dbType value="String" />        <size value="2000" />        <layout type="log4net.Layout.ExceptionLayout" />      </parameter>    </appender>        <!--輸入日志到控制臺-->    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">      <layout type="log4net.Layout.PatternLayout">        <conversionPattern value="[時間]:%d%n[級別]:%p%n[內容]:%m%n%n"></conversionPattern>      </layout>    </appender>    <appender name="FileAppender" type="log4net.Appender.FileAppender">      <param name="file" value="D:/a.log"></param>      <param name="appendToFile" value="true"></param>      <layout type="log4net.Layout.PatternLayout">        <conversionPattern value="[時間]:%d%n[級別]:%p%n[內容]:%m%n%n"></conversionPattern>      </layout>    </appender>        <root>      <level value="INFO"></level>      <appender-ref ref="FileAppender"></appender-ref>      <appender-ref ref="ConsoleAppender"></appender-ref>    </root>    <logger name="MyLogger">      <level value="INFO"></level>      <appender-ref ref="FileAppender"></appender-ref>      <appender-ref ref="ConsoleAppender"></appender-ref>    </logger></log4net>

這個配置文件定義了三種不同的Appender,分別是ADO.NET 記錄到數據,ConsoleAppender 從控制臺輸出, FileAppender 日志信息文件輸出。

  然而Log4Net 的配置附著器遠不止這些,這里上傳一個比較全的附著器配置文件供大家參考 點擊下載。

  根據上面的日志配置文件仍然使用如下代碼測試:

  

這里需要注意,log4net.Config.xmlConfigurator.Configure(); 這個相當于初始化Log4net, 如果是在Web程序中,我們可以將這句話添加到 Global.asax 文件的application_Start(object sender, EventArgs e) 方法中,在程序啟動的時候就初始化配置信息。

這里說明兩個配置:

  

這里的 root 和 logger 配置節點,root 就相當于默認的日志對象配置,而logger是指定特定的日志配置。他們可以共存。

對于這兩個節點下面都有 level 和 appender-ref 節點,分別用于指定日志的輸出級別和引用哪些附著器。每個日志對象都可以使用多個appender,這里的配置同時使用文件輸出和控制臺輸出。

  

上面的程序聲明了兩個日志對象 log 和 log1,log 是在初始化的時候存在的,它得到的是<logger name="MyLogger"> 這個日志對象,而log1 是 LogManager

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌海市| 尼勒克县| 仙桃市| 彰化县| 象州县| 栾城县| 石屏县| 乌鲁木齐县| 临沂市| 磐安县| 枣阳市| 清镇市| 海宁市| 凯里市| 扎兰屯市| 屏南县| 重庆市| 五家渠市| 秦皇岛市| 大新县| 鹤峰县| 曲松县| 合川市| 肇庆市| 平凉市| 平乐县| 武川县| 东丰县| 萨嘎县| 巴中市| 永丰县| 凭祥市| 大厂| 滁州市| 石台县| 高邮市| 清涧县| 永安市| 宁南县| 苗栗县| 安阳市|