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。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM