明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線(xiàn)學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

將出錯(cuò)信息記錄到Windows日志中

[摘要]引言:任何一個(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ò)信息的,如下圖所示。