0

我为 asp.net 项目错误日志记录创建事件日志。我通过在 regedit 中添加一个键,然后添加一个子键来做到这一点。
有时,我创建一个新的密钥和子密钥,而不是获得一个新的空事件日志,而是在事件查看器中看到它正在向我显示来自不同项目的日志。我无法找到何时发生这种情况的模式。
有没有人遇到过这样的问题?难道我做错了什么?

4

2 回答 2

3

您可能希望使用EventLog.CreateEventSource API 来执行此操作 - 它应该为您处理任何细节。

快速阅读文档似乎表明检查了前 8 个字符的唯一性……也许这就是您的问题所在?

编辑:从反射器,API 这样做......

  1. 检查无效字符(基于 Unicode 类别的“不可打印”、\、*、?)
  2. 检查创建的 reg 键是否 <= 254 个字符
  3. 检查源是否已经注册
  4. 检查日志名称是否未保留(AppEvent、SecEvent、SysEvent)
  5. 检查具有相同开头 8 个字符的另一个日志
  6. 检查日志名称不作为源存在
  7. 创建日志子键
  8. 使用默认值初始化日志子项(MaxSize = 524288,AutoBackupLogFiles = 9. Retention = 604800,File = %SystemRoot%\System32\config\logName.Substring(0, 8) + ".evt")
  9. 如果操作系统不是 > Windows NT 5.x(Vista 或更高版本),则在 logkey 上创建一个带有 logName 和源名称的多字符串值。或者,如果值存在,则将源名称附加到现有数组。
  10. 为源创建子项
  11. 使用默认值(EventMessageFile、ParameterMessageFile、CategoryMessageFile、CategoryCount)初始化源子项
于 2008-12-10T09:34:36.893 回答
-2

似乎问题在于我们已经创建了一个具有该名称的事件日志,即使我们删除了它,它也没有帮助。解决方案是创建一个具有不同名称的事件日志。

于 2009-02-15T08:34:36.663 回答