Log4net使用

0、安装log4net

  

nuget方式安装

Install-Package log4net

1、Web.config配置

      该config配置可以放在web.config文件中,也可以单独拎出来一个配置文件。只需要在第2步中加载对应的就可以了。

      首先引入log4net.dll程序集,log4net分debug版release版本。

      在configSections节点中加入:

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

      configSections节点一定要放在Web.config最上面

      加入节点log4net节点,如下:


  <log4net debug="false">
    <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
    <!-- Print only messages of level DEBUG or above in the packages -->
    <logger name="ServiceLogger">
      <level value="ALL" />
      <appender-ref ref="SysAppender" />
    </logger>

    <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net">
      <param name="File" value="log/" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="&quot;log_&quot;yyyyMMdd&quot;.txt&quot;" />
      <param name="StaticLogFileName" value="false" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="[%d]  %-5p - %m%n" />
        <param name="Header" value="&#xD;&#xA;------------------------------------------------------------------------&#xD;&#xA;" />
        <param name="Footer" value="&#xD;&#xA;------------------------------------------------------------------------&#xD;&#xA;" />
      </layout>
    </appender>
  </log4net>
 

2、加载log4net的config配置

  如果是单独的配置文件,要指定文件路径。

log4net.Config.XmlConfigurator.Configure(new FileInfo(@"config.log4net"));

  有2种方式:   

    1)在Application_Start事件中加入

log4net.Config.XmlConfigurator.Configure()

    2)在AssemblyInfo.cs文件中配置

//加载log4配置
[assembly: log4net.Config.XmlConfigurator()]

3、MVC项目

    1)MVC新建错误类

      要继承自HandleErrorAttribute类, 重载 OnException方法,加入下面代码,其中error.html为出现错误时要转到的错误页、log.Debug()方法输出错误信息到指定的文件夹下。

      using myLog=log4net;       

//异常处理记录 myLog.ILog log = myLog.LogManager.GetLogger("WebLogger"); log.Debug(filterContext.Exception); //转到错误提示页 filterContext.HttpContext.Response.Redirect("/error.html");

    2)MVC替换掉原来的错误过滤器

      在FilterConfig.cs类下注册全局过滤器时,更换为filters.Add(new MyErrorHandleAttribute())。到这里基本的配置就可以了。

    3)注册filterconfig

      如果在Application_Start中,没有注册过滤器,要注册一下,因为在过滤器中。

 FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);

4、MVC或WebForm项目,都可以在Application_Error事件中进行处理

private readonly log4net.ILog log = log4net.LogManager.GetLogger("ServiceLogger");
//获取最近的一次异常
            log.Error(Server.GetLastError().GetBaseException());
            //处理完及时清理异常 
            Server.ClearError();
            //Server.Transfer("error.html");
            Response.Redirect("Error.html");

5、测试方法   

int a=1;
int b=0;
int c=a/b;

 

原文地址:https://www.cnblogs.com/zhaoyihao/p/4662678.html