asp.net mvc4使用log4.net 日志功能
2024-09-24 10:11:20
对于网站来讲,不能把异常信息显示给用户,异常信息只能记录到日志,出了问题把日志文件发给开发人员,就能知道问题所在。
下面演示网站 出错后自动添加出错日志的实例
(1)新建一个WebApplication
(2)添加对log4net.dll的引用
(3)在Web.Config (或App.Config)添加配置,
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<!-- Define some output appenders -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="test.txt"/>
<appendToFile value="true"/>
<maxSizeRollBackups value=""/>
<maximumFileSize value="1024KB"/>
<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
</configuration>
(4)初始化:在程序最开始加入log4net.Config.XmlConfigurator.Configure();不要加到页面的Load
Global.asax
log4net.Config.XmlConfigurator.Configure();
(5)添加错误过滤器MyHandleExceptionAttribute:HandleErrorAttribute
public class MyHandleExceptionAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{ base.OnException(filterContext); LogManager.GetLogger(typeof(MyHandleExceptionAttribute)).Debug("被系统过滤捕获的异常" + filterContext.Exception); filterContext.HttpContext.Response.Redirect("/Error.html"); } }
(6)在FilterConfig.cs中注册此过滤器,替换之前的过滤器
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
// filters.Add(new HandleErrorAttribute());
filters.Add(new MyHandleExceptionAttribute());
}
操作完成,这是可以在网页中故意抛出异常,在网站根目录下查看文件test.txt中的出错信息了。
这只是一个log4.net的例子,log4.net还有很多功能,可以保存信息到文件,数据库,还可以定那种消息可邮件等等。
最新文章
- monggodb学习系列:1,mongodb入门
- Linux开机自动登录(文本模式)
- NEFU 561 方块计算
- MySql中delimiter的作用是什么?
- 关于 hangfire 的权限问题
- ubuntu 14.04 与 CentOS 升级GCC/G++至5版本
- Castle ActiveRecord简单介绍
- 摄像头(5)使用Camera2 替代过时的Camera API
- 【转】简单几步让App Store软件下载快如迅雷 -- 不错!!!
- poj 2367 Genealogical tree (拓扑排序)
- java.util.Map源码分析
- 函数:内嵌函数和闭包 - 零基础入门学习Python020
- iOS相机去黑框
- Telnet服务器和域名系统的端口号 Mac OS X
- 统计SQLSERVER表行数,以及每天数据变化的行数
- 尝试在Linux上部署Asp.net Core应用程序
- Java中list<;Object[]>;、list<;Student>;、list<;Map<;String,String>;>;排序
- mac清除某个端口的占用
- 在confluence中出现Handshake failed due to invalid Upgrade header: null
- 【BZOJ4298】[ONTAK2015]Bajtocja