Log4net (Log for .net)
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>