⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eventslog.cs

📁 办公自动化系统
💻 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 + -