★33°空間‰


                                 ----★七彩服飾  【最潮拜☆日單精品】【Esprit】【Hotwind】滿150包郵-女裝-流行女裝    www.7color.hb.cn

                                 ----智力比知識重要,素質(zhì)比智力重要,覺悟比素質(zhì)更重要
          posts - 110,comments - 35,trackbacks - 0
          <2011年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          MSN: yeiwei2008@hotmail.com
              你溫柔的臉旁總是徜徉著快樂的神情,你調(diào)皮的眼神總是扣人心弦,每次走過都會被你糾纏,雖然有時候有點(diǎn)不講理,不過我到是很喜歡!
              你的倔強(qiáng)讓你變的有點(diǎn)高傲,高傲的你成為了我獵奇的對象,當(dāng)與你相識的那一刻,我才真正的了解,其實(shí)你根本沒什么,也是小女人一個,需要疼愛,需要哄,需要愛!無聊的時候我總會上網(wǎng)上看著你,雖然有時候我們誰都不說話只是靜靜的待在那里!

          常用鏈接

          留言簿(4)

          隨筆分類(80)

          隨筆檔案(110)

          文章分類(28)

          文章檔案(31)

          新聞檔案(1)

          相冊

          收藏夾

          友情鏈接

          • QQ
          • 我的女兒····
          • http://yexinchen2009.blog.sohu.com/
          • 我的服裝店
          • 主要賣【最潮拜☆日單精品】【Esprit】【Hotwind】滿150包郵-女裝-流行女裝-淘寶網(wǎng)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 61871
          • 排名 - 852

          最新評論

          閱讀排行榜

          評論排行榜

          ?

          Log4net 是基于 .net 開發(fā)的一款非常著名的記錄日志開源組件。他最早是 2001 7 月由 NeoWorks Limited 啟動的項(xiàng)目,基本的框架源于另外的一個非常著名的姐妹組件- log4j Log4net 記錄日志的功能非常強(qiáng)大。它可以將日志分不同的等級,比不同的樣式,將日志輸出到不同的媒介。

          Log4net 可以從 http://logging.apache.org/log4net/downloads.html 網(wǎng)站下載最新版本。

          ?


          Log4net 核心組成

          Log4net 主要由五個部分組成,分別為 Logger Appenders, Filters, Layouts Object Renders

          ?

          一)???????? Logger( 日志 )


          1
          記錄日志的分類:

          Log4net 能夠以多種方式輸出日志。支持的日志輸出常用的主要媒介有數(shù)據(jù)庫(包括 MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite ,控制臺,文件,事件日志 ( 可以用事件查看器查看 ) 和郵件等多種方式。


          2
          日志的級別

          Log4net 支持多種級別的日志。優(yōu)先級從高到低依次排列如下 :

          FATAL > ERROR > WARN > INFO > DEBUG

          此外還有 ALL (允許所有的日志請求)和 OFF (拒絕所有的日志請求)這兩種特殊的級別。

          ?

          二)???????? Appenders


          Appenders
          決定日志輸出的方式。

          Appenders 必須實(shí)現(xiàn) log4net.Appenders.IAppender 接口。


          Log4net

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

          3 AspNetTraceAppender
          ??? 能用asp.net中Trace的方式查看記錄的日志。

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

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

          6 EventLogAppender
          ??? 將日志寫到Windows Event Log.

          7 FileAppender
          ??? 將日志寫到文件中。

          8 LocalSyslogAppender
          ??? 將日志寫到local syslog service (僅用于UNIX環(huán)境下).?
          9 MemoryAppender
          ??? 將日志存到內(nèi)存緩沖區(qū)。

          10 NetSendAppender
          ??? 將日志輸出到Windows Messenger service.這些日志信息將在用戶終端的對話框中顯示。

          11 RemoteSyslogAppender
          ??? 通過UDP網(wǎng)絡(luò)協(xié)議將日志寫到Remote syslog service。

          12 RemotingAppender
          ??? 通過.NET Remoting將日志寫到遠(yuǎn)程接收端。

          13 RollingFileAppender
          ??? 將日志以回滾文件的形式寫到文件中。

          14 SmtpAppender
          ??? 將日志寫到郵件中。

          15 TraceAppender
          ??? 將日志寫到.NET trace 系統(tǒng)。

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

          ?

          三)???????? Filters


          Appender
          對象將日志以缺省的方式傳到輸出流,然后 Filter 可以按照不同的標(biāo)準(zhǔn)控制日志的輸出。 Filter 可以再配置文件中配置。最簡單的形式是在 appender 中寫明一個 Threshold. 這樣只有級別大于或等于此 Threshold 的日志才被記錄。

          Filters 必須實(shí)現(xiàn) log4net.Filters.IFilter 接口。

          ?

          四)???????? Layouts


          Layouts
          控制日志顯示的格式樣式。日志的顯示格式如下:

          "%timestamp [%thread] %-5level %logger - %message%newline"

          Timestamp: 表示程序已經(jīng)開始執(zhí)行的時間。 單位 [ 毫秒 ]

          Thread: 執(zhí)行當(dāng)前代碼的線程。

          Level :日志的級別。

          Logger :日志相關(guān)請求的名稱。

          Message:  日志消息。

          ?

          Layouts 還可以控制日志的輸出樣式,比如以普通形式或以 xml 等形式輸出。

          ?

          五)???????? Object Renderers


          這是很重要的一項(xiàng),
          log4net 將按照用戶定義的標(biāo)準(zhǔn)輸出日志消息。

          Object Renders 必須實(shí)現(xiàn) log4net.ObjectRenderer.IObjectRenerer 接口。

          ?


          如何在項(xiàng)目中使用 log4net


          下面有個基于控制臺的
          demo ,舉例描述了 log4net 怎么用于輸出日志。
          本例中,日志將會記錄到文件,控制臺,事件日至和Access數(shù)據(jù)庫中。

          一)主要代碼:

          1. 配置文件app.config


          源代碼可以從
          http://www.cnblogs.com/Files/Ring1981/Log4net%20Test.rar 下載。


          四 log4net架構(gòu)

          ???? log4net核心結(jié)構(gòu)如下:

          ????

          ?1 <? xml?version="1.0"?encoding="utf-8"? ?>
          ?2 < configuration >
          ?3 ???? <!-- ?Register?a?section?handler?for?the?log4net?section? -->
          ?4 ???? < configSections >
          ?5 ???????? < section? name ="log4net" ?type ="System.Configuration.IgnoreSectionHandler" ? />
          ?6 ???? </ configSections >
          ?7 ???? < appSettings >
          ?8 ???????? <!-- ?To?enable?internal?log4net?logging?specify?the?following?appSettings?key? -->
          ?9 ???????? <!-- ?<add?key="log4net.Internal.Debug"?value="true"/>? --> </ appSettings >
          10 ???? <!-- ?This?section?contains?the?log4net?configuration?settings? -->
          11 ???? < log4net >
          12 ???????? <!-- 定義輸出到文件中 -->
          13 ???????? < appender? name ="LogFileAppender" ?type ="log4net.Appender.FileAppender" >
          14 ???????????? <!-- 定義文件存放位置 -->
          15 ???????????? < file? value ="D:\log-file1.txt" ? />
          16 ???????????? <!-- ?Example?using?environment?variables?in?params? -->
          17 ???????????? <!-- ?<file?value="${TMP}\log-file.txt"?/>? -->
          18 ???????????? <!-- <sppendToFile?value="true"?/> -->
          19 ???????????? <!-- ?An?alternate?output?encoding?can?be?specified? -->
          20 ???????????? <!-- ?<encoding?value="unicodeFFFE"?/>? -->
          21 ???????????? < layout? type ="log4net.Layout.PatternLayout" >
          22 ???????????????? <!-- 每條日志末尾的文字說明 -->
          23 ???????????????? < footer? value ="[Footer]--Test?By?Ring1981? " ? />
          24 ???????????????? <!-- 輸出格式 -->
          25 ???????????????? < conversionPattern? value ="%date?[%thread]?%-5level?%logger?[%ndc]?&lt;%property{auth}&gt;?-?%message%newline" ? />
          26 ???????????? </ layout > ????????????
          27 ???????? </ appender >

          28 ???????? <!-- 定義輸出到控制臺命令行中 -->
          29 ???????? < appender? name ="ConsoleAppender" ?type ="log4net.Appender.ConsoleAppender" > ????????????
          30 ???????????? < layout? type ="log4net.Layout.PatternLayout" >

          31 ???????????????? < conversionPattern? value ="%date?[%thread]?%-5level?%logger?[%property{NDC}]?-?%message%newline" ? />
          32 ???????????? </ layout >
          33 ???????? </ appender >
          34 ???????? <!-- 定義輸出到windows事件中 -->
          35 ???????? < appender? name ="EventLogAppender" ?type ="log4net.Appender.EventLogAppender" >
          36 ???????????? < layout? type ="log4net.Layout.PatternLayout" >
          37 ???????????????? < conversionPattern? value ="%date?[%thread]?%-5level?%logger?[%property{NDC}]?-?%message%newline" ? />
          38 ???????????? </ layout >
          39 ???????? </ appender >
          40 ???????? <!-- 定義輸出到數(shù)據(jù)庫中,這里舉例輸出到Access數(shù)據(jù)庫中,數(shù)據(jù)庫為D盤的access.mdb -->
          41 ???????? < appender? name ="AdoNetAppender_Access" ?type ="log4net.Appender.AdoNetAppender" >
          42 ???????????? < connectionString? value ="Provider=Microsoft.Jet.OLEDB.4.0;Data?Source=D:\access.mdb" ? />
          43 ???????????? < commandText? value ="INSERT?INTO?Log?([Date],[Thread],[Level],[Logger],[Message])?VALUES?(@log_date,?@thread,?@log_level,?@logger,?@message)" ? />
          44 ???????????? <!-- 定義各個參數(shù) -->
          45 ???????????? < parameter >
          46 ???????????????? < parameterName? value ="@log_date" ? />
          47 ???????????????? < dbType? value ="String" ? />
          48 ???????????????? < size? value ="255" ? />
          49 ???????????????? < layout? type ="log4net.Layout.PatternLayout" >
          50 ???????????????????? < conversionPattern? value ="%date" ? />
          51 ???????????????? </ layout >
          52 ???????????? </ parameter >
          53 ???????????? < parameter >
          54 ???????????????? < parameterName? value ="@thread" ? />
          55 ???????????????? < dbType? value ="String" ? />
          56 ???????????????? < size? value ="255" ? />
          57 ???????????????? < layout? type ="log4net.Layout.PatternLayout" >
          58 ???????????????????? < conversionPattern? value ="%thread" ? />
          59 ???????????????? </ layout >
          60 ???????????? </ parameter >
          61 ???????????? < parameter >
          62 ???????????????? < parameterName? value ="@log_level" ? />
          63 ???????????????? < dbType? value ="String" ? />
          64 ???????????????? < size? value ="50" ? />
          65 ???????????????? < layout? type ="log4net.Layout.PatternLayout" >
          66 ???????????????????? < conversionPattern? value ="%level" ? />
          67 ???????????????? </ layout >
          68 ???????????? </ parameter >
          69 ???????????? < parameter >
          70 ???????????????? < parameterName? value ="@logger" ? />
          71 ???????????????? < dbType? value ="String" ? />
          72 ???????????????? < size? value ="255" ? />
          73 ???????????????? < layout? type ="log4net.Layout.PatternLayout" >
          74 ???????????????????? < conversionPattern? value ="%logger" ? />
          75 ???????????????? </ layout >
          76 ???????????? </ parameter >
          77 ???????????? < parameter >
          78 ???????????????? < parameterName? value ="@message" ? />
          79 ???????????????? < dbType? value ="String" ? />
          80 ???????????????? < size? value ="1024" ? />
          81 ???????????????? < layout? type ="log4net.Layout.PatternLayout" >
          82 ???????????????????? < conversionPattern? value ="%message" ? />
          83 ???????????????? </ layout >
          84 ???????????? </ parameter >
          85 ???????? </ appender >
          86 ???????? <!-- 定義日志的輸出媒介,下面定義日志以四種方式輸出。也可以下面的按照一種類型或其他類型輸出。 -->
          87 ???????? < root >
          88 ???????????? < appender-ref? ref ="LogFileAppender" ? />
          89 ???????????? < appender-ref? ref ="ConsoleAppender" ? />
          90 ???????????? < appender-ref? ref ="EventLogAppender" ? />
          91 ???????????? < appender-ref? ref ="AdoNetAppender_Access" ? />
          92 ???????? </ root >
          93 ???? </ log4net >
          94 </ configuration >

          2. LoggingExample.cs

          ?1 // ?Configure?log4net?using?the?.config?file
          ?2 [assembly:?log4net.Config.XmlConfigurator(Watch = true )]
          ?3 //
          ?This?will?cause?log4net?to?look?for?a?configuration?file
          ?4 //
          ?called?ConsoleApp.exe.config?in?the?application?base
          ?5 // ?directory?(i.e.?the?directory?containing?ConsoleApp.exe)

          ?6
          ?7 namespace ?ConsoleApp
          ?8
          {
          ?9 ???? using
          ?System;
          10

          11 ????
          /// ? <summary>
          12 ???? /// ?Example?of?how?to?simply?configure?and?use?log4net
          13 ???? /// ? </summary>

          14 ???? public ? class ?LoggingExample
          15 ????
          {
          16 ???????? private ? static ? readonly ?log4net.ILog?log? =
          ?log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
          17
          ????????
          18 ???????? public ? static ? void ?Main( string
          []?args)
          19 ????????
          {
          20 ????????????log.Error( " Error?Acc "
          );
          21 ????????????log.Fatal( " Fatle?Acc "
          );????????????
          22
          ????????????System.Console.ReadLine();
          23
          ????????????
          24 ????????}

          25
          26 ????}

          27 }

          28

          運(yùn)行程序,日志就會以xml中定義的四種媒介形式輸出。
          目前支持的輸出方式包括:
          1 AdoNetAppender
          ??? 將日志記錄到數(shù)據(jù)庫中。可以采用SQL和存儲過程兩種方式。
          Log4net 簡介
          posted on 2006-09-20 13:06 圣域飛俠 閱讀(1156) 評論(1)  編輯  收藏 所屬分類: ASP.NET

          FeedBack:
          # re: 日志記錄組件[Log4net]詳細(xì)介紹
          2011-06-11 14:37 | 趙建強(qiáng)
          你好,讀完這篇文章,覺得您寫的真好,我想請問,如果我想分析log4net源碼來學(xué)習(xí)一下架構(gòu)和代碼的知識,擴(kuò)展一下視野,您能給我些建議嗎?  回復(fù)  更多評論
            
          主站蜘蛛池模板: 兴文县| 郁南县| 杭锦旗| 阿瓦提县| 革吉县| 彰化市| 闽清县| 同心县| 富阳市| 开江县| 绥阳县| 方山县| 红安县| 湄潭县| 赤壁市| 汝南县| 泌阳县| 辉县市| 垦利县| 枣庄市| 九江县| 新密市| 凌海市| 项城市| 克什克腾旗| 沂南县| 慈利县| 武川县| 洱源县| 保靖县| 吉林省| 体育| 长沙市| 青河县| 高密市| 江津市| 加查县| 阜康市| 太仆寺旗| 洪泽县| 义马市|