功能簡介:這裡講的log4net是一個很好用的open source code的組件。可以把你想輸出的log以不同的 格式輸出到不同的媒介。- 用途:主要用途當然就是要讓自己能夠在第一時間能夠很快又方便的找到Bug或者是自己想看的資訊。
- Log的分級:總共分成七級( 但實際可以在程式碼被呼叫的只有2-6級 )
- OFF - nothing gets logged (cannot be called)
- FATAL。
- ERROR
- WARN
- INFO
- DEBUG
- ALL - everything gets logged (cannot be called)
- 組態設定:
- Root :
所有的Log都繼承自root,所以預設的level為INFO,表示DEBUG層級的資訊預設<root> <level value="INFO" /> <appender-ref ref="RollingFileAppender" /> <appender-ref ref="SmtpAppender" /> <appender-ref ref="ConsoleAppender" /> </root>
- ConfigSections:
這個標籤要放在 <configuration> 標籤下的第一個位置,不然會出錯。<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections>
- Appender:
指定要用那一種方式寫入Log。下面的例子便是把Log輸出到Console的表示法。<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
- Layout:
Log輸出的格式。<layout type="log4net.Layout.PatternLayout"> <conversionPattern value="Date:%d%nThreadID:%t%nLevel:%level%nLogger:%logger%nLine:%l%nMessage:%message%nException:%exception%n%n" /> </layout>
- Conversion Pattern:
把Value的值轉換成Log資料。Value中的變數如下:%m(message):輸出的Log訊息,如ILog.Debug(message)輸出的一條消息%n(new line):換行%d(datetime):輸出當前语句運行的時間%r(run time):輸出程序從運行到執行到當前語句時消耗的毫秒數%t(thread id):當前語句所在的執行序ID%p(priority): 日志的當前優先級别,即DEBUG、INFO、WARN…等%level:錯誤層級%c(class):當前Log對象的名稱%L(line):輸出語句所在的行號%F(file):輸出語句所在的文件名%-數字:表示該項的最小長度,如果不夠,則用空格填充 - Filters
用來過濾Log,過濾方式可依照Log level 或依Log字串....等等方式。
(注意: filter的條件一定要在layout之後才有作用 )
過濾的方式如下: - StringMatchFilter
- LevelRangeFilter
- LevelMatchFilter
- DenyAllFilter
- 以下為一個簡單的組態設定的寫法,下次有空時再補上其它資料:
<?xml version="1.0"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="LogName:%c%nLevel:%level%nData:%date%nThreadID:%thread%nMSG:%message%nEX:%exception%n%n" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="WARN"/> <levelMax value="FATAL"/> </filter> </log4net> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> </startup> <system.web> <membership defaultProvider="ClientAuthenticationMembershipProvider"> <providers> <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" /> </providers> </membership> <roleManager defaultProvider="ClientRoleProvider" enabled="true"> <providers> <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" /> </providers> </roleManager> </system.web> </configuration>
2012年9月1日 星期六
[C#] log4net 教學及使用範例(一)
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言