引言:
任何一个系统都不可能一劳永逸,一直没有错误的运行下去,一个优秀的系统的出错处理也一定是优秀的,而一个好的程序员也一定会很观注可能出错的地方,并作出相应的容错处理。 C# 中的 try catch 其实已经为我们省了不少事情,本文并不是并不是对如何做出错处理进行论述的,而是给出一种收集出错信息,并将出错信息存储到 Windows 日志中的方案。
一、 处理代码:
using System;
using System.Diagnostics;
using System.Text;
using System.IO;
namespace Town.Log
{
///
1<summary>
2
3/// 功能:错误日志类,将错误信息按指定事件日志名记录在系统日志
4
5/// </summary>
public class Error
{
///
1<summary>
2
3/// 记录日志
4
5/// </summary>
///
1<param name="sourceName"/>
日志资源名,如:Town
///
1<param name="message"/>
错误信息
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 ”,这便是记录出错信息的,如下图所示。