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=""Logs_"yyyyMMdd".txt"" /> 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=" ----------------------header-------------------------- " /> 22 <param name="Footer" value=" ----------------------footer-------------------------- " /> 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。