?? eventslog.cs
字號:
using System;
using System.Data;
using System.Collections;
using System.Diagnostics;
using System.ComponentModel;
using System.Configuration.Assemblies;
namespace MyOA.CommonComponent
{
///本類利用Windoes事件管理記錄系統能夠日志,需要增加ASP.NET訪問系統日志的權限,方法如下:
///1. 點擊“開始”,再點擊“運行”
///2. 在“打開”框中輸入“regedit”
///3. 找到下列子鍵: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog
///4. 右擊“Eventlog”點擊“權限”再點“添加”
///5. 添加ASP.NET進程用戶(Win2003下是“NETWORK SERVICE”;Win2000下是“”;WinXP下是“”)
///6. 關閉注冊表編輯器
/// <summary>
/// 類,事件日志類。
/// </summary>
public class MyEventsLog
{
/// <summary>
/// 保護變量,默認事件源。
/// </summary>
protected string EVENT_LOG_SOURCE = "WebApplication";
/// <summary>
/// 保護屬性,日志對象
/// </summary>
protected EventLog eventLog = null;
/// <summary>
/// 構造函數。
/// </summary>
/// <param name="Source">事件源的名稱</param>
public MyEventsLog(String source)
{
try
{
EVENT_LOG_SOURCE = source;
// 確認事件日志源存在
if (!(EventLog.SourceExists(EVENT_LOG_SOURCE)))
{
EventLog.CreateEventSource(EVENT_LOG_SOURCE, "Application");
}
//得到日志對象
if (eventLog == null)
{
eventLog = new EventLog("Application");
eventLog.Source = EVENT_LOG_SOURCE;
}
}
catch(Exception e)
{
string str=e.Message;
}
}
/// <summary>
/// 公有方法,將事件日志記錄到系統日志\應用程序。
/// </summary>
/// <param name="Type">類型
/// {
/// 錯誤 = EventLogEntryType.Error,
/// 信息 = EventLogEntryType.Information,
/// 警告 = EventLogEntryType.Warning
/// }</param>
/// <param name="message">日志內容</param>
public void WriteLog(System.Diagnostics.EventLogEntryType type,string message)
{
// 寫日志
try
{
eventLog.WriteEntry(message, type);
}
catch{}
}
/// <summary>
/// 讀日志
/// </summary>
/// <returns>以DataTable的形式,返回當前事件源中所有的日志信息</returns>
public DataTable ReadLog()
{
//構造DataTable對象,包含3列,分別為事件類型、發生時間、內容屬性
DataTable dt=new DataTable();
dt.Columns.Add(new DataColumn("EntryType",System.Type.GetType("System.String"))); //類型
dt.Columns.Add(new DataColumn("TimeGenerated",System.Type.GetType("System.DateTime"))); //發生時間
dt.Columns.Add(new DataColumn("Message",System.Type.GetType("System.String"))); //內容
//讀取日志,把項加入DataTable對象
try
{
foreach(EventLogEntry entry in eventLog.Entries)
{
if(entry.Source==this.EVENT_LOG_SOURCE)
dt.Rows.Add(new object[]{entry.EntryType,entry.TimeGenerated,entry.Message});
}
}
catch{}
return dt;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -