zoukankan      html  css  js  c++  java
  • log4net

     log4net.Config.XmlConfigurator.Configure();//获取Log4Net配置信息(配置信息定义在Web.config文件中)
    
                ThreadPool.QueueUserWorkItem(o =>
                {
                    while (true)
                    {
    
                        try
                        {
                            if (ErrorHanderAttribute.qe.Count > 0)
                            {
                                Exception e = ErrorHanderAttribute.qe.Dequeue();
                                if (e != null)
                                {
                                    ILog logger = LogManager.GetLogger("Log");
                                    logger.Error(e);//将异常信息写到Log4Net中.
                                }
                                else
                                {
                                    Thread.Sleep(100);
                                }
                            }
                            Thread.Sleep(100);
                        }
                        catch (Exception e)
                        {
    
                            ErrorHanderAttribute.qe.Enqueue(e);
                        }
                    }
                }); 
     public class ErrorHanderAttribute : System.Web.Mvc.HandleErrorAttribute
        {
            public static Queue<Exception> qe = new Queue<Exception>();
            public override void OnException(ExceptionContext filterContext)
            {
    
                qe.Enqueue(filterContext.Exception);
                filterContext.HttpContext.Response.Redirect("/home/err");
                base.OnException(filterContext);
            }
        }
     <log4net>
        <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
        <!-- Set root logger level to ERROR and its appenders -->
        <root>
          <level value="ALL"/>
          <appender-ref ref="SysAppender"/>
        </root>
        <!-- Print only messages of level DEBUG or above in the packages -->
        <logger name="WebLogger">
          <level value="DEBUG"/>
        </logger>
        <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net" >
          <param name="File" value="App_Data/" />
          <param name="AppendToFile" value="true" />
          <param name="RollingStyle" value="Date" />
          <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
          <param name="StaticLogFileName" value="false" />
          <layout type="log4net.Layout.PatternLayout,log4net">
            <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
            <param name="Header" value="&#13;&#10;----------------------header--------------------------&#13;&#10;" />
            <param name="Footer" value="&#13;&#10;----------------------footer--------------------------&#13;&#10;" />
          </layout>
        </appender>
        <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
          <layout type="log4net.Layout.PatternLayout,log4net">
            <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
          </layout>
        </appender>
      </log4net>
  • 相关阅读:
    泛型技巧系列:如何提供类型参数之间的转换
    一些支离破碎的泛型反射技巧
    泛型技巧系列:类型字典和Type Traits
    Excel开发:简化工作表中选定区域的操作。
    趣味程序:打印自己代码的程序
    VBF BETA 1.5 发布了
    .NET 2.0 CER学习笔记
    随笔乱入,开心就好
    Cocos2dx for WindowsPhone:开发一个打地鼠游戏(下)
    跨平台网络游戏趋势和优势
  • 原文地址:https://www.cnblogs.com/tgdjw/p/5207345.html
Copyright © 2011-2022 走看看