Log4Net的简单使用

      在前面的随笔中,已经异常处理过滤器中,我们已经将获取到的错误信息写到队列中去,然后又单独的线程对队列中的错误信息处理,将错误信息输出到制定的文件中,但是如果我们需要改变需求,打算将错误信息输出到数据库中去,此时就需要重新编写导出的代码,比较麻烦,所以我们可以使用一个日志处理的组件Log4Net,我们只需要在配置文件中完成相应的配置,就可以实现上述的功能。Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件、数据库、EventLog等),日志就是程序的黑匣子,可以通过
日志查看系统的运行过程,从而发现系统的问题。日志的作用:将运行过程的步骤、成功失败记录下来,将关键性的数据记录下来分析系统问题所在。

Log4Net的使用

1.添加引用log4net.dll

2.配置web.Config文件

例如将日志信息保存到文档中的配置如下:

 <configSections>

    <!--log4net的配置-->
   <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections> 
 <!--log4net配置-->
    <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="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配置结束-->

(3)日志系统必须在程序一开始运行就要读取配置文件,创建处理类,所以应该在global文件的Application_Start的开始位置添加

   log4net.Config.XmlConfigurator.Configure();

(4)然后在单独开的线程,创建出log处理类,然后通过日志组件将错误信息输出

 //将错误写到日志中取
                            //File.AppendAllText(filePath + DateTime.Now.ToString("yyyy-MM-dd")+".txt", ex.ToString(), System.Text.Encoding.UTF8);
                            //如果项目想要将日志写在数据库或者其他的操作方式而不是写在文件中,那么我们将要修改项目代码,所以使用日志记录组件log4net,只要修改配置文件就可以很简单的实现
                            ILog logger = LogManager.GetLogger("errorMsg");
                            logger.Error(ex);
原文地址:https://www.cnblogs.com/XZhao/p/6789500.html