如何编写事件日志类别

本文关键字:日志 事件 何编写 | 更新日期: 2023-09-27 18:33:23

众所周知

,我们可以使用类 EventLog 来编写事件日志,但我对如何在事件日志中写入类别名称感到困惑。它提供了类别参数,例如,写入条目的类型之一是:

public void WriteEntry(
string message,
EventLogEntryType type,
int eventID,
short category


它只是在我的日志中显示数字。为什么类别的类型是短的,而不是字符串的?如何在事件查看器中显示类别名称?谢谢!顺便说一下,我们不会创建自定义的类别消息文件。

如何编写事件日志类别

可以使用给定类别编写事件日志条目,但需要使用在事件日志中注册的字符串资源表创建额外的本机 dll。这确实会使您的部署进一步复杂化。您当前必须在安装过程中执行

  1. 若要创建新的事件日志源,每次创建新源时都需要具有管理员权限。因此,明智的做法是收集所有源代码,以便在初始安装期间立即安装。
  2. 创建一个本机 dll,其中包含要提供的每个类别 ID 的字符串资源表。
  3. 在注册表中注册类别 dll 以使 Windows 知道它。

现在,您可以使用重载编写具有给定类别的事件日志消息。

有一篇非常好的《乔布斯博士杂志》文章准确地描述了你的问题。

不要使用 WriteEntry,你会得到一个安全异常。 安装后不需要管理员权限。

改用 WriteEvent 查看: https://security.stackexchange.com/q/15857/396