事件日志消息被另一个事件日志覆盖

问题描述:

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

看来,问题是,我们已经创建了一个事件日志使用该名称,尽管我们删除了它,但它并没有帮助。解决方案是使用不同的名称创建事件日志。

你可能想用EventLog.CreateEventSource API来做到这一点 - 它应该照顾你的任何细节。

通过文档快速阅读似乎表明,第8个字符检查唯一性......也许这就是你的问题是什么?

编辑:从反射镜,API做到这一点......(? “不打印” 基于Unicode的类别,\,*)

  1. 检查无效字符
  2. 检查所创建的REG关键是< = 254个字符
  3. 检查该源是已经注册
  4. 检查该日志名称不保留(AppEvent,SecEvent,SYSEVENT)
  5. 支票另一个日志与SAM e开头8个字符
  6. 检查该日志名称不存在作为源
  7. 创建日志子项
  8. 初始化用默认值(MAXSIZE = 524288日志子项,AutoBackupLogFiles = 9滞留= 604800,文件=%SystemRoot%\ System32 \ config \ logName.Substring(0,8)+“.evt”)
  9. 如果操作系统不是> Windows NT 5.x(Vista或更高版本),则在Logkey上创建一个多字符串值与logName和源名称。或者,如果存在值,请将源名称附加到现有数组。
  10. 创建源的一个子项
  11. 初始化使用默认值(EventMessageFile,ParameterMessageFile,CategoryMessageFile,CategoryCount)源子项
+0

谢谢,但即使事件日志有完全不同的名称也会发生...... – 2008-12-10 10:11:42

+0

如果在创建事件日志时存在任何您不知道的注册表项或需要完成的其他内务处理, API将做到这一点,因为您可能会忽略手动流程的关键步骤。 – 2008-12-10 12:06:55