云海顽石 发表于 2008-12-10 09:58:12

将错误信息记录到Windows日志中

<br>  <b>引言:</b><br>  任何一个系统都不可能一劳永逸,一直没有错误的运行下去,一个优秀的系统的出错处理也一定是优秀的,而一个好的程序员也一定会很观注可能出错的地方,并作出相应的容错处理。C#中的try catch其实已经为我们省了不少事情,本文并不是并不是对如何做出错处理进行论述的,而是给出一种收集出错信息,并将出错信息存储到Windows日志中的方案。<br>  <br>  <b>一、处理代码:</b><br>  using System;<br>  <br>  using System.Diagnostics;<br>  <br>  using System.Text;<br>  <br>  using System.IO;<br>  <br>  namespace Town.Log<br>  <br>  {<br>  <br>   /// &lt;summary><br>  <br>   /// 功能:错误日志类,将错误信息按指定事件日志名记录在系统日志<br>  <br>   /// &lt;/summary><br>  <br>   public class Error<br>  <br>   {<br>  <br>     /// &lt;summary><br>  <br>     /// 记录日志<br>  <br>     /// &lt;/summary><br>  <br>     /// &lt;param name="sourceName">日志资源名,如:Town&lt;/param><br>  <br>     /// &lt;param name="message">错误信息&lt;/param><br>  <br>     public static void Log(string sourceName, string message)<br>  <br>     {<br>  <br>       EventLog eventLog = null;<br>  <br>        // 确定日志是否存在<br>  <br>       if (!(EventLog.SourceExists(sourceName)))<br>  <br>       {<br>  <br>          EventLog.CreateEventSource(sourceName, sourceName   "Log");<br>  <br>       }<br>  <br>        if (eventLog == null)<br>  <br>       {<br>  <br>          eventLog = new EventLog(sourceName   "Log");<br>  <br>          eventLog.Source = sourceName;<br>  <br>       }<br>  <br>       // 记录日志信息<br>  <br>       eventLog.WriteEntry(message, System.Diagnostics.EventLogEntryType.Error);<br>  <br>     }<br>  <br>   }<br>  <br>  }<br>  <br>  设置:因为系统日志的操作是有权限控制的,所以我们还要把对系统日志操作的权限赋给asp.net用户,方法如下:“开始->运行”,输入命令,“regedt32”,找到“System->CurrentControlSet->Services->Eventlog”,选择“安全->权限->添加”,然后找到本机的“AspNet”用户,加进来并且给读取权限就好了,加进来后目录中会多一个“aspnet_wp account”<br>  <br>  <b>二、调用方法</b><br>       try<br>  <br>       {<br>  <br>          ……<br>  <br>       }<br>  <br>       catch (Exception ex)<br>  <br>       {<br>  <br>          Error.Log("Town", ex.ToString());<br>  <br>          return false;<br>  <br>       }<br>  <br>  <b>三、一点说明</b><br>  系统出错后,会自动将出错信息记录到系统日志中,你可以在“开始->程序->管理工具->事件查看器”中发现一个新的项目“TownLog”,这便是记录出错信息的,如下图所示。<br>  <center><img src=/bbs/attachments/computer/20081210/200812109551965677801.gif></center> <
页: [1]
查看完整版本: 将错误信息记录到Windows日志中