ASP.NET的错误处理机制之二(实例log4net)

一、log4net下载:http://logging.apache.org/log4net/download_log4net.cgi

 

二、web.config配置如下:

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <configuration>
 3  <configSections>
 4   <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
 5  </configSections>
 6  <log4net>
 7   <logger name="logerror">
 8    <level value="ERROR" />
 9    <appender-ref ref="ErrorAppender" />
10   </logger>
11   <logger name="loginfo">
12    <level value="INFO" />
13    <appender-ref ref="InfoAppender" />
14   </logger>
15   <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
16    <param name="File" value="Log\\LogError\\" />
17    <param name="AppendToFile" value="true" />
18    <param name="MaxSizeRollBackups" value="100" />
19    <param name="MaxFileSize" value="10240" />
20    <param name="StaticLogFileName" value="false" />
21    <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
22    <param name="RollingStyle" value="Date" />
23    <layout type="log4net.Layout.PatternLayout">
24     <param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p 
25    &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;" />
26    </layout>
27   </appender>
28   <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
29    <param name="File" value="Log\\LogInfo\\" />
30    <param name="AppendToFile" value="true" />
31    <param name="MaxFileSize" value="10240" />
32    <param name="MaxSizeRollBackups" value="100" />
33    <param name="StaticLogFileName" value="false" />
34    <param name="DatePattern" value="yyyyMMdd&quot;.htm&quot;" />
35    <param name="RollingStyle" value="Date" />
36    <layout type="log4net.Layout.PatternLayout">
37     <param name="ConversionPattern" value="&lt;HR COLOR=blue&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p 
38    &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;" />
39    </layout>
40   </appender>
41  </log4net>
42  <system.web>
43   <compilation defaultLanguage="c#" debug="true" />
44   <customErrors mode="RemoteOnly" />
45   <authentication mode="Forms" />
46   <authorization>
47    <allow users="*" />
48   </authorization>
49   <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
50   <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
51    cookieless="false" timeout="20" />
52   <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
53  </system.web>
54 </configuration>

 当打开日志文件的时候会提示被另一个程序占用,解决办法:

在appender下加<lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 

 

三、LOG操作类:

 1 <%@ Application Language="C#" %>
 2 <%@ Import Namespace="SystemLog" %>
 3 
 4 <script runat="server">
 5 
 6     void Application_Start(object sender, EventArgs e) 
 7     {
 8         // 在应用程序启动时运行的代码
 9         LogHelper.SetConfig();
10     }
11     
12     void Application_End(object sender, EventArgs e) 
13     {
14         //  在应用程序关闭时运行的代码
15     }
16         
17     void Application_Error(object sender, EventArgs e) 
18     { 
19         // 在出现未处理的错误时运行的代码
20         Exception objExp = HttpContext.Current.Server.GetLastError();
21         LogHelper.WriteLog("客户机IP:" + Request.UserHostAddress + "<br/>错误地址:" + Request.Url + "<br/>异常信息:" + Server.GetLastError().Message, objExp);
22     }
23 
24     void Session_Start(object sender, EventArgs e) 
25     {
26         // 在新会话启动时运行的代码
27     }
28 
29     void Session_End(object sender, EventArgs e) 
30     {
31         // 在会话结束时运行的代码。 
32         // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 InProc 时,才会引发 Session_End 事件。
33         // 如果会话模式设置为 StateServer 
34         // 或 SQLServer,则不会引发该事件。
35     }
36        
37 </script>

 

五、页级别处理:

1 try
2 {
3     string str = Request.QueryString["a"].ToString();
4 }
5 catch (Exception ex)
6 {
7     LogHelper.WriteLog("ErrorInfo", ex);
8 }

 

六、效果:

 

本文参考原文:http://fanrsh.cnblogs.com/archive/2006/06/08/420546.html

posted @ 2015-06-17 11:25  叮*^_^*叮  阅读(234)  评论(0编辑  收藏  举报