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。