实现log4.NET记录日志功能【WebForm】
2011-04-22 10:24
183 查看
Ⅰ.在ASP.NET页面开发过程中记录日志的一般流程如下:
PS:这是按日期划分日志文本文件,若需要了解怎么写入SQLite数据库,可了解实现log4.NET记录日志功能【WinForm】
一.引用log4net.dll
二.打开global.asa.cs文件,添加以下代码:
三.在web.cofig根节点 <configuration> 中加入如下section节
四.在web.cofig中,继续以<configuration>的子节点形式增加配置节点
五.写入日志之 ILog接口实例化,写在global.asa.cs文件上端位置:
然后在Application_Error方法中写自定义消息:
Ⅱ.对不同级别日志,进行不同文件写入的处理:
一.增加logger配置节:每一节代表一个日志级别
很显然,对于不同级别的日志,会通过<appender-ref>节对应到不同的写入方式,到底怎么写呢,
二.名称分别为RollingLogFileAppender、InfoAppender的两个<appender>节如下:
三.写入日志之 ILog接口实例化:
操作:
参考一:http://logging.apache.org/log4net/release/config-examples.html(log4net 配置示例网站,包括MS Sql、SQLite、Oracle and so on.)
参考二:http://blog.csdn.net/mengyao/archive/2007/11/18/1891390.aspx
PS:这是按日期划分日志文本文件,若需要了解怎么写入SQLite数据库,可了解实现log4.NET记录日志功能【WinForm】
一.引用log4net.dll
二.打开global.asa.cs文件,添加以下代码:
using log4net; protected void Application_Start(Object sender, EventArgs e) { log4net.Config.DOMConfigurator.Configure(); }
三.在web.cofig根节点 <configuration> 中加入如下section节
<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections>
四.在web.cofig中,继续以<configuration>的子节点形式增加配置节点
<log4net> <!--一.以日期为文件名后缀将日志输出到文本文件中--> <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--显示指定文件存放位置--> <!--<file value="D:\log4netfile.txt" />--> <!--日志文件名开头,生成的日志文件名格式形如:MonitorConfigLog20110502.log--> <param name="File" value="MonitorConfigLog" /><!--默认存放根目录--> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="10"/><!-- 切割最多文件数 --> <param name="MaximumFileSize" value="10MB"/><!-- 每个文件的大小 --> <param name="StaticLogFileName" value="false"/> <rollingStyle value="Date" /> <datePattern value="yyyyMMdd".log"" /><!--文件名后缀(带日期)--> <layout type="log4net.Layout.PatternLayout"> <footer value="by Xluo" /> <!--每条日志末尾的文字说明--> <conversionPattern value="*记录时间【%date】 级别【%-5level】 出错位置【%logger 行号:%line】
错误描述:%message%newline" /><!--输出格式--> </layout> </appender> <root> <!--对“文件形式记录日志”方式启用--> <appender-ref ref="LogFileAppender" /> </root> </log4net>
五.写入日志之 ILog接口实例化,写在global.asa.cs文件上端位置:
//创建日志记录组件实例 ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
然后在Application_Error方法中写自定义消息:
protected void Application_Error(Object sender, EventArgs e) { log.Info("\r\n客户机IP:"+ Request.UserHostAddress +"\r\n<BR>错误地址:"+Request.Url, Server.GetLastError()); }
Ⅱ.对不同级别日志,进行不同文件写入的处理:
一.增加logger配置节:每一节代表一个日志级别
<logger name="logerror"> <level value="ERROR" /> <appender-ref ref="RollingLogFileAppender" /> </logger> <logger name="loginfo"> <level value="INFO" /> <appender-ref ref="InfoAppender" /> </logger>
很显然,对于不同级别的日志,会通过<appender-ref>节对应到不同的写入方式,到底怎么写呢,
二.名称分别为RollingLogFileAppender、InfoAppender的两个<appender>节如下:
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="F:\\AppLog\\" /> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="100" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".htm"" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="<HR COLOR=red>%n异常时间:%d [%t] <BR>%n异常级别:%-5p <BR>%n异 常 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" />
</layout> </appender> <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="F:\\App\\" /> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="100" /> <param name="StaticLogFileName" value="false" /> <param name="DatePattern" value="yyyyMMdd".htm"" /> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="<HR COLOR=red>%n日志时间:%d [%t] <BR>%n日志级别:%-5p <BR>%n日 志 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" /> </layout> </appender>
三.写入日志之 ILog接口实例化:
public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
操作:
if(loginfo.IsInfoEnabled) loginfo.Info("新增一条记录成功!"); if(logerror.IsErrorEnabled) logerror.Error("新增一条记录出错!",se);
参考一:http://logging.apache.org/log4net/release/config-examples.html(log4net 配置示例网站,包括MS Sql、SQLite、Oracle and so on.)
参考二:http://blog.csdn.net/mengyao/archive/2007/11/18/1891390.aspx
相关文章推荐
- 实现log4.NET记录日志功能【WinForm】
- 工作日志记录:模仿头条的评论功能输入框控制输入法并完整实现软键盘的在此环境下的UE控制
- 从头认识Spring-3.8 简单的AOP日志实现(注解版)-扩展增加检查订单功能,以便记录并检测输入的参数
- 使用代理模式扩展logback,实现自定义的日志记录功能
- spring aop 实现用户操作日志记录功能(转)
- Spring 自定义注解实现操作日志记录功能
- 从头认识Spring-3.4 简单的AOP日志实现-扩展增加检查订单功能,以便记录并检测输入的参数
- Python实现日志自动记录功能(一个思路代码,详细可以自己扩展)
- 装饰者模式---使用装饰者模式实现带日志记录功能的数据库命令执行类
- 三种方案实现日志记录功能
- Laravel框架实现的记录SQL日志功能示例
- MVC4.0 利用HandleErrorAttribute和log4net实现记录异常日志功能
- spring aop 实现用户操作日志记录功能
- tp5下通过composer实现日志记录功能
- 从头认识Spring-3.4 简单的AOP日志实现-扩展添加检查订单功能,以便记录并检測输入的參数
- 利用特性功能实现简易的AOP日志记录功能
- 使用Aop面向切面技术实现记录详细操作日志功能
- Laravel框架实现利用中间件进行操作日志记录功能
- PHP 日志记录功能实现
- Python实现日志记录功能--样例