首页 > 代码库 > log4net

log4net

一.什么是log4net? log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。

二.使用Demo,本文章将用log4net来记录异常信息

1.添加引用到项目 log4net.dll 2.在 global.asax 的 Application_Start()方法下添加

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:卷猫链接:http://anneke.cn/ArticleInfo/Detial?id=5来源:Anneke.cn log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("/Web.config")));

3.在web.Config中添加配置

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:卷猫链接:http://anneke.cn/ArticleInfo/Detial?id=5来源:Anneke.cn<configSections>   <!--log4Net配置-->     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />   <!--log4Net配置end--> </configSections><!--log4Net配置-->  <log4net>    <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->    <!-- Set root logger level to ERROR and its appenders -->    <root>      <level value="ERROR"/>      <appender-ref ref="SysAppender"/>    </root>    <!-- Print only messages of level DEBUG or above in the packages -->    <logger name="WebLogger">      <level value="ERROR"/>    </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> <!--log4Net配置end-->

4.调用:在对应的异常处理方法中

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:卷猫链接:http://anneke.cn/ArticleInfo/Detial?id=5来源:Anneke.cn     //使用log4.net纪录日志     ILog logger = LogManager.GetLogger("errorMsg");     logger.Error(ex.ToString());

5.自用异常处理方式(从OA项目中取出的一段处理方法),队列方式解决文件并问题

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:卷猫链接:http://anneke.cn/ArticleInfo/Detial?id=5来源:Anneke.cn//异常过滤器捕获异常 加入队列namespace OA.WebApp.Filter{    public class MyException : HandleErrorAttribute    {        /// <summary>        /// 异常信息队列        /// </summary>        public static Queue<Exception> ExceptionQueue = new Queue<Exception>();        public override void OnException(ExceptionContext filterContext)        {            base.OnException(filterContext);            //将异常信息加入队列,            ExceptionQueue.Enqueue(filterContext.Exception);            filterContext.ExceptionHandled = true;//异常跳转的话要加入这句代码告诉它异常已经处理            filterContext.Result = new RedirectResult("/ErrorHtml/default.html");        }    }}
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:卷猫链接:http://anneke.cn/ArticleInfo/Detial?id=5来源:Anneke.cn//对异常队列中的数据进行处理,  该方法在 Application_Start()下使用。程序启动的时候就会开启线程每隔三秒看队列里有没有异常信息.namespace OA.WebApp{    public class ExceptionConfig    {        /// <summary>        /// 监视异常队列,队列数量大于0的话,就写入日志        /// </summary>        public static void MonitoringException()        {            log4net.Config.XmlConfigurator.Configure(new FileInfo(HttpContext.Current.Server.MapPath("/Web.config")));            ThreadPool.QueueUserWorkItem(p =>            {                while (true)                {                    if (MyException.ExceptionQueue.Count > 0)                    {                        Exception ex = MyException.ExceptionQueue.Dequeue();                        //使用log4.net纪录日志                        ILog logger = LogManager.GetLogger("errorMsg");                        logger.Error(ex.ToString());                    }                    else                    {                        Thread.Sleep(3000);                    }                }            });        }    }} 

 

log4net