將出錯(cuò)信息記錄到Windows日志中
發(fā)表時(shí)間:2023-08-13 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]引言:任何一個(gè)系統(tǒng)都不可能一勞永逸,一直沒(méi)有錯(cuò)誤的運(yùn)行下去,一個(gè)優(yōu)秀的系統(tǒng)的出錯(cuò)處理也一定是優(yōu)秀的,而一個(gè)好的程序員也一定會(huì)很觀注可能出錯(cuò)的地方,并作出相應(yīng)的容錯(cuò)處理。C#中的try catch其實(shí)...
引言:
任何一個(gè)系統(tǒng)都不可能一勞永逸,一直沒(méi)有錯(cuò)誤的運(yùn)行下去,一個(gè)優(yōu)秀的系統(tǒng)的出錯(cuò)處理也一定是優(yōu)秀的,而一個(gè)好的程序員也一定會(huì)很觀注可能出錯(cuò)的地方,并作出相應(yīng)的容錯(cuò)處理。C#中的try catch其實(shí)已經(jīng)為我們省了不少事情,本文并不是并不是對(duì)如何做出錯(cuò)處理進(jìn)行論述的,而是給出一種收集出錯(cuò)信息,并將出錯(cuò)信息存儲(chǔ)到Windows日志中的方案。
一、處理代碼:
using System;
using System.Diagnostics;
using System.Text;
using System.IO;
namespace Town.Log
{
/// <summary>
/// 功能:錯(cuò)誤日志類(lèi),將錯(cuò)誤信息按指定事件日志名記錄在系統(tǒng)日志
/// </summary>
public class Error
{
/// <summary>
/// 記錄日志
/// </summary>
/// <param name="sourceName">日志資源名,如:Town</param>
/// <param name="message">錯(cuò)誤信息</param>
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);
}
}
}
設(shè)置:因?yàn)橄到y(tǒng)日志的操作是有權(quán)限控制的,所以我們還要把對(duì)系統(tǒng)日志操作的權(quán)限賦給asp.net用戶(hù),方法如下:“開(kāi)始->運(yùn)行”,輸入命令,“regedt32”,找到“System->CurrentControlSet->Services->Eventlog”,選擇“安全->權(quán)限->添加”,然后找到本機(jī)的“AspNet”用戶(hù),加進(jìn)來(lái)并且給讀取權(quán)限就好了,加進(jìn)來(lái)后目錄中會(huì)多一個(gè)“aspnet_wp account”
二、調(diào)用方法
try
{
……
}
catch (Exception ex)
{
Error.Log("Town", ex.ToString());
return false;
}
三、一點(diǎn)說(shuō)明
系統(tǒng)出錯(cuò)后,會(huì)自動(dòng)將出錯(cuò)信息記錄到系統(tǒng)日志中,你可以在“開(kāi)始->程序->管理工具->事件查看器”中發(fā)現(xiàn)一個(gè)新的項(xiàng)目“TownLog”,這便是記錄出錯(cuò)信息的,如下圖所示。