如何编写事件日志类别

Xia*_*Mao 6 c# windows event-log

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

public void WriteEntry(
string message,
EventLogEntryType type,
int eventID,
short category
Run Code Online (Sandbox Code Playgroud)

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

Alo*_*aus 5

您可以编写具有给定类别的事件日志条目,但是您需要使用在事件日志中注册的字符串资源表创建额外的本机dll.这会进一步使您的部署复杂化.您目前必须在安装期间执行此操作

  1. 要创建新的事件日志源,您需要在每次创建新源时都拥有管理员权限.因此,收集所有源是明智的,这样您就可以在初始安装期间立即安装.
  2. 创建一个本机dll,它包含您要提供的每个类别ID的字符串资源表.
  3. 在注册表中注册类别dll以使Windows了解它.

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

有一篇非常好的乔布斯博士文章描述了你的问题.