Log4Net 记录错误日志。

时间:2023-03-08 21:30:37

点击进入推荐链接

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

  Log4Net 记录错误日志。

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

 protected void Application_Start()
{
log4net.Config.XmlConfigurator.Configure();
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
//QueueUserWorkItem()将方法排入列队以便执行。在匿名函数中判断队列中是否有数据,以及写错误信息到日志中。
//开启一个线程,扫描异常信息队列。
ThreadPool.QueueUserWorkItem((c)=>{
while (true)
{
//判断队列中是否否有数据。
if (MyExceptionAttribute.QueueException.Count > )
{
//通过Dequeue()方法,拿到异常对象。
Exception ex = MyExceptionAttribute.QueueException.Dequeue();
if (ex != null)
{
//得到logger对象。
ILog logger = LogManager.GetLogger("ErrorMsg");
//写入到文件中。
logger.Error(ex.ToString());
}
else
{
System.Threading.Thread.Sleep();
}
}
else
{
//休眠3秒。
Thread.Sleep();
}
}
});
}

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

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

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

  <log4net>
<!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
<!-- Set root logger level to ERROR and its appenders -->
<root>
<level value="ALL"/><!--权限为所有-->
<appender-ref ref="SysAppender"/>
</root> <!-- Print only messages of level DEBUG or above in the packages -->
<logger name="WebLogger">
<level value="DEBUG"/>
</logger>
<appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="App_Data/" /> <!--将生成的log日志存储在App_Data文件夹中。-->
<param name="AppendToFile" value="true" /> <!--追加-->
<param name="RollingStyle" value="Date" /> <!--以日期的格式进行滚动-->
<param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
<param name="StaticLogFileName" value="false" /> <!--动态-->
<layout type="log4net.Layout.PatternLayout,log4net"> <!--以日期格式布局-->
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header-------------------------- " />
<param name="Footer" value=" ----------------------footer-------------------------- " />
</layout>
</appender>
<appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
</log4net>

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

  Log4Net 记录错误日志。

点击进入推荐链接

End。