zoukankan      html  css  js  c++  java
  • asp.net mvc4使用log4.net 日志功能

    对于网站来讲,不能把异常信息显示给用户,异常信息只能记录到日志,出了问题把日志文件发给开发人员,就能知道问题所在。

    下面演示网站 出错后自动添加出错日志的实例

    (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="10"/>
          <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还有很多功能,可以保存信息到文件,数据库,还可以定那种消息可邮件等等。

  • 相关阅读:
    shell脚本控制
    Oracle语句优化53个规则详解
    oracle 查看 用户,用户权限,用户表空间,用户默认表空间
    建Oracle表空间,指定用户默认表空间,增加数据文件
    建Oracle表空间,指定用户默认表空间,增加数据文件
    shell 日期参数
    shell 日期参数
    Oracle语句优化53个规则详解
    Trac 经验谈之(4)报表篇
    trac 经验谈之(3)工作流篇
  • 原文地址:https://www.cnblogs.com/lunawzh/p/5237208.html
Copyright © 2011-2022 走看看