Log4net (Log for .net)
開源的記錄日志的組件,是從java的Log4J移植到.net
日志文件存放的位置
在項目新建“App_Code”和“App_Data”,該文件夾客戶端無法訪問
滾動日志文件
例:每個日志最多100MB,一個日志滿了,就新建一個日志保存,最多可以容納10個日志文件,超過10個文件,覆蓋最老的日志文件
日志級別
日志對象根據你使用的級別,匹配webconfig設置日志級別,如果使用的級別大于配置的級別,那么才把日志內容記錄到日志文件中。
常用級別項:Fatal>Error>Warn>Debug ,即 嚴重>錯誤>警告>調試。
在Web.config中配置Log4net
一、
在<configuration>節點下新建節點< configSections>節點
然后在< configSections>下新增:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
注意:
二、
然后
<configuration>
根節點下新增:

1 <log4net> 2 <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL --> 3 <!-- Set root logger level to ERROR and its appenders --> 4 <root> 5 <level value="ERROR" /> 6 <appender-ref ref="RollingFileTracer" /> 7 </root> 8 <!-- Print only messages of level DEBUG or above in the packages --> 9 <appender name="RollingFileTracer" type="log4net.Appender.RollingFileAppender,log4net"> 10 <param name="File" value="App_Data/Log/" /> 11 <param name="AppendToFile" value="true" /> 12 <param name="RollingStyle" value="Date" /> 13 <param name="MaxSizeRollBackups" value="10" /> 14 <param name="MaximumFileSize" value="1MB" /> 15 <param name="DatePattern" value=""Logs_"yyyyMMdd".txt"" /> 16 <param name="StaticLogFileName" value="false" /> 17 <layout type="log4net.Layout.PatternLayout,log4net"> 18 <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> 19 </layout> 20 </appender> 21 </log4net>
三、
在Global文件的Application_Start中寫(程序啟動的時候讀取配置)
log4net.Config.XmlConfigurator.Configure();
四、
在編寫程序時,如何使用
ILog logger = LogManager.GetLogger(typeof(當前類名));
logger.Error("記錄日志的內容",);
注意:Error方法代表log對象調用Error的級別寫入到日志文件中,如果配置文件配置的級別高于Error,那么內容將不會記錄到日志文件中
項目中常規使用處
在Global文件配置
Application_Error中記錄未處理異常
protected void Application_Error(object sender, EventArgs e)
{
ILog log = LogManager.GetLogger(typeof(Global));
log.Error("系統發生未處理異常",Context.Error);
}
Web.config范例

1 <?xml version="1.0" encoding="utf-8"?> 2 3 <!-- 4 有關如何配置 ASP.NET 應用程序的詳細信息,請訪問 5 http://go.microsoft.com/fwlink/?LinkId=169433 6 --> 7 8 <configuration> 9 10 <!--配置Log4net--> 11 <configSections> 12 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> 13 </configSections> 14 15 <system.web> 16 <compilation debug="true" targetFramework="4.5" /> 17 <httpRuntime targetFramework="4.5" /> 18 19 20 21 </system.web> 22 23 <!--連接字符串--> 24 <connectionStrings> 25 <add connectionString="Data Source=.;Initial Catalog=repengDb;User ID=sa;Password=84879825" name="sqlCon" /> 26 </connectionStrings> 27 28 29 30 31 32 <log4net> 33 <!-- 日志級別類型: OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL --> 34 <root> 35 <level value="ERROR" /> <!--設置日志寫入級別--> 36 <appender-ref ref="RollingFileTracer" /> 37 </root> 38 39 <!-- Print only messages of level DEBUG or above in the packages --> 40 <appender name="RollingFileTracer" type="log4net.Appender.RollingFileAppender,log4net"><!-- type= 設置日志的記錄類型,這里采用的是滾動日志--> 41 42 <!--日志信息存儲到哪個文件夾下--> 43 <param name="File" value="App_Data/Log/" /> 44 45 <!--是否將內容追加到日志文件--> 46 <param name="AppendToFile" value="true" /> 47 48 <!--根據日期作為日志滾動--> 49 <param name="RollingStyle" value="Date" /> 50 51 <!--最大容納10個日志文件--> 52 <param name="MaxSizeRollBackups" value="10" /> 53 54 <!--一個日志文件的大小--> 55 <param name="MaximumFileSize" value="1MB" /> 56 57 <!--日志文件命名方式--> 58 <param name="DatePattern" value=""Logs_"yyyyMMdd".txt"" /> 59 60 <!--有很多節點,需要時根據需求查找配置,沒必要全都記住。。。。--> 61 <param name="StaticLogFileName" value="false" /> 62 <layout type="log4net.Layout.PatternLayout,log4net"> 63 <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> 64 </layout> 65 </appender> 66 </log4net> 67 68 69 </configuration>
文章列表