可以再global中記錄日誌到資料庫中
//記錄ASP.NET網站中未處理的異常
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError().GetBaseException();
LogEntry log = new LogEntry();
log.Categories.Add("General");
log.Title = "未處理的異常";
log.EventId = 1;
log.Message = ex.Message +
"\r\nSOURCE: " + ex.Source +
"\r\nFORM: " + Request.Form.ToString() +
"\r\nQUERYSTRING: " + Request.QueryString.ToString() +
"\r\nTARGETSITE: " + ex.TargetSite +
"\r\nSTACKTRACE: " + ex.StackTrace;
Logger.Write(log);
}
測試環境:.Net Framework 2.0、Windows Server 2003 SP2、Visual Studio 2005 SP1
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Diagnostics;
public partial class Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//Windows日誌有:"Application"應用程式, "Security"安全, "System"系統
string[] logs = new string[] { "Application", "System" };
StringBuilder result = new StringBuilder();
foreach (string log in logs)
{
EventLog myLog = new EventLog();
myLog.Log = log;
//myLog.MachineName = "rondi-agt0qf9op";
foreach (EventLogEntry entry in myLog.Entries)
{
//EventLogEntryType枚舉包括:
//Error 錯誤事件。
//FailureAudit 失敗審核事件。
//Information 資訊事件。
//SuccessAudit 成功審核事件。
//Warning 警告事件。
if (entry.EntryType == EventLogEntryType.Error || entry.EntryType == EventLogEntryType.Warning)
{
result.Append("<font color='red'>" + log);
result.Append(entry.EntryType.ToString() + "</font>");
result.Append("<font color='blue'>(" + entry.TimeWritten.ToString() + ")</font>:");
result.Append(entry.Message + "<br /><br />");
}
}
}
Response.Write(result.ToString());
}
}
輸出結果:
ApplicationWarning(2007-6-16 16:25:49):Event code: 3005 Event message: 發生了未處理的異常。 Event time: 2007-6-16 16:25:49 Event time (UTC)
SystemWarning(2007-6-16 10:34:15):瀏覽器服務不能從在網路 \Device\NetBT_Tcpip_{5AC78E63-D3B3-4246-8FF7-D8D2B41B3620} 上的主瀏覽器 \\QIANTING01 上檢索伺服器列表。 主瀏覽器: \\QIANTING01 網路: \Device\NetBT_Tcpip_{5AC78E63-D3B3-4246-8FF7-D8D2B41B3620} 此事件可能是由於暫時丟失網路連接造成的。如果此訊息再次出現,請確認伺服器仍然與網路連接。返回碼在資料文字框中。
SystemError(2007-6-16 10:34:45):瀏覽器服務已很多次無法在 \Device\NetBT_Tcpip_{5AC78E63-D3B3-4246-8FF7-D8D2B41B3620} 傳輸上捕獲備份列表。備份瀏覽器已經停止。
SystemError(2007-6-16 15:40:30):瀏覽器服務已很多次無法在 \Device\NetBT_Tcpip_{5AC78E63-D3B3-4246-8FF7-D8D2B41B3620} 傳輸上捕獲備份列表。備份瀏覽器已經停止。