C# 读取系统日志

时间:2022-07-26 23:34:17

.NET框架类库提供了EventLog类和EventLogEntry类与系统日志进行交互二者属于System.Diagnostics命名空间

EventLog

类的属性主要有

Entris返回一个EventLogEntryCollection型值,代表事件日志的内容Log 获取或者返回日志的名称,其中应用程序日志是Application,系统日志是System,安全日志是Security,默认值为空字符串.

LogDisplayName 获取事件日志的友好名称MachineName 获取或设置在其上读取或写入事件的计算机名称

Source 获取或设置在写入事件日志时要注册和使用的源名称

EventEntryCollection类定义EventLogEntry实例集合的大小和枚举数.

EventLogEntry类的一些主要属性如下:

Category 获取与该项的CategoryNumber对应的文本

CategoryNumber 获取该项的类别号

Data 获取与该项对应的二进制数据

EntryType 获取该项的事件类型,其值属于EventLogEntryType枚举,这个枚举的主要成员如下:

Error 错误事件,它指示用户应该知道的严重问题,比如功能或数据丢失

FailureAudit 失败审核事件,它指示当审核访问尝试失败,比如打开文件的尝试失败时发生的安全事件

Information 信息事件.它指示重要。成功的事件

SuccessAudit 成功审核事件.它指示当审核访问尝试成功,比如成功登录时发生的安全事件

Warning 警告事件.它指示并不立即具有重要性的问题,但此问题可能表示将来会导致问题的条件.

EventID 获取此事件项的应用程序特定事件标识符

Index 获取该项在事件日志中的索引

MachineName 获取在产生该项的计算机的名称

Message 获取与该事件的本地化消息

ReplacementStrings 获取对应该项替换字符串

Source 获取生成该事件的应用程序的名称

TimeGenerated 获取生成该事件的本地时间

TimeWritten 获取在日志写入该事件的本地时间

UserName 获取负责该事件的用户的名称

示例代码:

 static void Main(string[] args)
        {
            EventLog eventLog = new EventLog();
            eventLog.Log = "System";//日志的类型 有应用程序 系统 等等
            EventLogEntryCollection eventLogEntryCollection = eventLog.Entries;//获取事件日志的内容
            EventLogEntry entry = eventLogEntryCollection[eventLogEntryCollection.Count-1];
            string[] title = { entry.EntryType.ToString(),
                   entry.TimeGenerated.ToLongDateString(),
                   entry.TimeGenerated.ToLongTimeString(),
                   entry.Source, entry.Category,    
                   entry.EventID.ToString(),
                   entry.UserName, entry.MachineName }; for (int i =0; i <8; i++) { Console.WriteLine(title[i]); } for(int j=0;j <= eventLogEntryCollection.Count - 1; j++) { Console.WriteLine("\n" + eventLogEntryCollection[eventLogEntryCollection.Count-1].Message); } }

  显示效果:

C# 读取系统日志

因为是刚刚了解,可能有所错误,如有错误,欢迎指正