Chinaunix首页 | 论坛 | 博客
  • 博客访问: 657431
  • 博文数量: 759
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 4845
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-27 13:51
文章分类

全部博文(759)

文章存档

2011年(1)

2008年(758)

我的朋友

分类:

2008-10-27 14:06:59


  引言:
  任何一个系统都不可能一劳永逸,一直没有错误的运行下去,一个优秀的系统的出错处理也一定是优秀的,而一个好的程序员也一定会很观注可能出错的地方,并作出相应的容错处理。中的try catch其实已经为我们省了不少事情,本文并不是并不是对如何做出错处理进行论述的,而是给出一种收集出错信息,并将出错信息到日志中的方案。
  
  一、处理代码:
  using System;
  
  using System.Diagnostics;
  
  using System.Text;
  
  using System.IO;
  
  namespace Town.Log
  
  {
  
   ///
  
   /// 功能:错误日志类,将错误信息按指定事件日志名记录在系统日志
  
   ///

  
   public class Error
  
   {
  
     ///
  
     /// 记录日志
  
     ///

  
     /// 日志资源名,如:Town
  
     /// 错误信息
  
     public static void Log(string sourceName, string message)
  
     {
  
       EventLog eventLog = null;
  
        // 确定日志是否存在
  
       if (!(EventLog.SourceExists(sourceName)))
  
       {
  
          EventLog.CreateEventSource(sourceName, sourceName + "Log");
  
       }
  
        if (eventLog == null)
  
       {
  
          eventLog = new EventLog(sourceName + "Log");
  
          eventLog.Source = sourceName;
  
       }
  
       // 记录日志信息
  
       eventLog.WriteEntry(message, System.Diagnostics.EventLogEntryType.Error);
  
     }
  
   }
  
  }
  
  设置:因为系统日志的操作是有权限控制的,所以我们还要把对系统日志操作的权限赋给asp.net用户,方法如下:“开始->运行”,输入命令,“regedt32”,找到“System->CurrentControlSet->Services->Eventlog”,选择“->权限->添加”,然后找到本机的“AspNet”用户,加进来并且给读取权限就好了,加进来后目录中会多一个“aspnet_wp account”
  
  二、调用方法
       try
  
       {
  
          ……
  
       }
  
       catch (Exception ex)
  
       {
  
          Error.Log("Town", ex.ToString());
  
          return false;
  
       }
  
  三、一点说明
  系统出错后,会自动将出错信息记录到系统日志中,你可以在“开始->程序->管理工具->事件查看器”中发现一个新的项目“TownLog”,这便是记录出错信息的,如下图所示。
  
【责编:admin】

--------------------next---------------------

阅读(273) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~