Log4Net 记录错误日志。

点击进入推荐链接

1、先添加log4net.dll的引用。

   

2、在程序入口的地方(Gloabal文件)加上这句log4net.Config.XmlConfigurator.Configure()。  

 1 protected void Application_Start()
 2 {
 3     log4net.Config.XmlConfigurator.Configure();
 4     AreaRegistration.RegisterAllAreas();
 5     WebApiConfig.Register(GlobalConfiguration.Configuration);
 6     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
 7     RouteConfig.RegisterRoutes(RouteTable.Routes);
 8     BundleConfig.RegisterBundles(BundleTable.Bundles);
 9     //QueueUserWorkItem()将方法排入列队以便执行。在匿名函数中判断队列中是否有数据,以及写错误信息到日志中。
10     //开启一个线程,扫描异常信息队列。
11     ThreadPool.QueueUserWorkItem((c)=>{
12         while (true)
13         {
14             //判断队列中是否否有数据。
15             if (MyExceptionAttribute.QueueException.Count > 0)
16             {
17                 //通过Dequeue()方法,拿到异常对象。
18                 Exception ex = MyExceptionAttribute.QueueException.Dequeue();
19                 if (ex != null)
20                 {
21                     //得到logger对象。
22                     ILog logger = LogManager.GetLogger("ErrorMsg");
23                     //写入到文件中。
24                     logger.Error(ex.ToString());
25                 }
26                 else
27                 {
28                     System.Threading.Thread.Sleep(3000);
29                 }
30             }
31             else
32             {
33                 //休眠3秒。
34                 Thread.Sleep(3000);
35             }    
36         }
37     });
38 }

3、在Web.Config中配置节点。在<configSections> </configSections>节点中添加配置。  

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

4、在<configuration> </configuration>节点中配置<log4net></log4net>节点。

 1  <log4net>
 2     <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
 3     <!-- Set root logger level to ERROR and its appenders -->
 4     <root>
 5       <level value="ALL"/><!--权限为所有-->
 6       <appender-ref ref="SysAppender"/>
 7     </root>
 8 
 9     <!-- Print only messages of level DEBUG or above in the packages -->
10     <logger name="WebLogger">
11       <level value="DEBUG"/>
12     </logger>
13     <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net" >
14       <param name="File" value="App_Data/" /> <!--将生成的log日志存储在App_Data文件夹中。-->
15       <param name="AppendToFile" value="true" /> <!--追加-->
16       <param name="RollingStyle" value="Date" /> <!--以日期的格式进行滚动-->
17       <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
18       <param name="StaticLogFileName" value="false" /> <!--动态-->
19       <layout type="log4net.Layout.PatternLayout,log4net"> <!--以日期格式布局-->
20         <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
21         <param name="Header" value="&#13;&#10;----------------------header--------------------------&#13;&#10;" />
22         <param name="Footer" value="&#13;&#10;----------------------footer--------------------------&#13;&#10;" />
23       </layout>
24     </appender>
25     <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
26       <layout type="log4net.Layout.PatternLayout,log4net">
27         <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
28       </layout>
29     </appender>
30   </log4net>

5、如果请求的控制器出现异常了,新建的Log日志会记录异常信息。

  

点击进入推荐链接

End。 

原文地址:https://www.cnblogs.com/xiezunxu/p/7866013.html