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