读取和管理事件日志的技术摘要
事件日志中的应用程序日志事件记录信息、警告和错误,以便系统管理员、客户支持人员、工具或最终用户可以监视应用程序的运行状态和操作。使用 System.Diagnostics.Eventing.Reader 命名空间中的类,可以从事件、事件日志和记录事件的应用程序(事件提供程序)中检索信息,还可以配置事件日志属性。这些类只能在运行 Windows Vista 或 Windows Server 2008 操作系统的计算机上使用。有关使用事件日志类的方案列表,请参阅事件日志方案。有关在 Windows Server 2003、Windows XP 或 Windows 2000 上访问事件日志信息的相关信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=99047。
事件
每个事件都包含一条信息性消息、警告消息或错误消息。事件中还包含一些属性,如事件的级别(严重性)、记录事件的事件提供程序的名称及记录事件的时间。事件由 EventLogRecord 对象表示,因此,有关事件属性的完整列表,请查看 EventLogRecord 类的成员。
每个事件都能以 XML 表示,在 XML 元素中定义事件属性和消息。若要检索事件 XML,请使用 ToXml 方法。有关事件和事件 XML 的详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkID=94642 以及事件查询和事件 XML。
若要获取事件消息,请使用 FormatDescription 方法。有关详细信息及代码示例,请参阅如何:查询事件。
EventLogType 枚举定义了四种不同的事件类型。每种事件类型针对一类不同的受众。最常见的事件类型是 Operational 和 Administrative。
事件日志
事件日志中包含相关的事件,而且每个日志只能包含一种类型的事件。事件日志可以保存(存档)在 .evtx 文件中,这类文件以后能以编程方式或通过事件查看器工具读取和查询。Windows 日志用于存储旧式应用程序(为 Windows XP、Windows Server 2003 或 Windows 2000 设计的应用程序)的事件以及应用于整个系统的事件。
Windows 日志 | 说明 |
---|---|
应用程序 |
应用程序日志包含由应用程序或程序记录的事件。例如,数据库程序可能会在应用程序日志中记录文件错误。程序开发人员决定记录哪些事件。 |
安全性 |
安全日志中包含一些事件,例如有效和无效的登录尝试,以及与资源使用相关的事件,如创建、打开或者删除文件或其他对象。管理员可以指定在安全日志中记录哪些事件。例如,如果已启用登录审核,则会在安全日志中记录系统登录尝试。 |
系统 |
系统日志包含由 Windows 系统组件所记录的事件。例如,在启动过程中,加载驱动程序或其他系统组件失败会记录在系统日志中。Windows 预先确定由系统组件记录的事件类型。 |
安装 |
安装日志中包含与应用程序安装相关的事件。 |
转发的事件 |
转发的事件日志用于存储从远程计算机中收集的事件。 |
应用程序和服务日志是不同于 Windows 日志的事件日志类别。应用程序和服务日志存储单一应用程序或组件的事件,而不存储可能在系统范围内产生影响的事件。它们有各种不同的名称,这些名称是由事件提供程序定义的。有许多事件日志都属于此类别。若要浏览可用的事件日志,请使用“工具”部分中提到的工具。
应用程序和服务日志类别中的事件日志分为四种类型,这四种类型由 EventLogType 枚举定义:Administrative、Operational、Analytic 和 Debug。使用事件查看器解决疑难问题的 IT 专业人士会对 Administrative 类型的日志中的事件特别感兴趣。Administrative 类型的日志中的事件应该提供有关如何响应这些事件的信息。对于 IT 专业人士而言,Operational 类型的日志中的事件也很有用,但它们可能需要更多的解释。
Analytic 和 Debug 类型的日志都不是用户友好的。Analytic 类型的日志存储跟踪问题的事件,通常会记录大量的事件。Debug 类型的日志是开发人员在调试应用程序时使用的。默认情况下,Analytic 和 Debug 类型的日志是隐藏且禁用的。
若要收集有关事件日志的信息,请使用 EventLogInformation 类。若要配置事件日志属性,请使用 EventLogConfiguration 类。每个事件日志都包含一个 SecurityDescriptor 属性,该属性确定哪些用户可以读取和访问该日志。每个日志还有一个控制最大日志大小的属性(MaximumSizeInBytes 属性)。此外,每个日志还包含一个控制在事件日志已满时如何处理事件的属性 (LogMode 属性)。有关配置事件日志的详细信息,请参阅如何:配置和读取事件日志属性。
事件提供程序
记录事件的应用程序称为事件提供程序。事件提供程序标识了可以将事件发布到其上的事件日志,而且提供程序还定义了可以发布的事件。每个事件提供程序都由名称和全局唯一标识符 (GUID) 唯一标识。可以使用 ProviderMetadata 类收集有关事件提供程序的信息。该类的 Events 属性可以获取提供程序可以发布的所有事件的集合。这些事件对象是由 EventMetadata 类定义的。有关访问事件提供程序数据的详细信息,请参阅如何:检索有关事件提供程序的信息。
不能使用 System.Diagnostics.Eventing.Reader 命名空间中的类创建事件提供程序。有关创建事件提供程序的详细信息,请参阅“Developing Event Providers(开发事件提供程序)”。
工具
若要从命令行访问事件日志信息,请使用 WevtUtil.exe 工具。此工具位于 %SystemRoot%\System32 目录中。有关 WevtUtil.exe 工具的帮助,请使用 wevtutil /? 命令。
若要从图形用户界面访问事件日志信息,请使用事件查看器工具。事件查看器是一个 Microsoft 管理控制台 (MMC) 插件,使用它用户可以浏览和管理事件日志。事件查看器也可用于测试使用事件日志功能的应用程序。有关使用或启动事件查看器的详细信息,请参阅“Event Viewer Overview(事件查看器概述)”。
请参见
参考
System.Diagnostics.Eventing.Reader
概念
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。