Kav*_*ian 1 c# logging event-log windows-7 c#-4.0
我使用以下方法创建了一个事件日志源:
if (!EventLog.SourceExists(EventLogSource)) EventLog.CreateEventSource(EventLogSource);
Run Code Online (Sandbox Code Playgroud)
因此,使用EventLogSource的每个日志条目都会进入"应用程序".然后我希望所有使用EventLogSource的条目进入另一个自定义日志; 所以我删除了它们然后使用新的自定义日志创建了源:
try { EventLog.DeleteEventSource(EventLogSource); }
catch { }
try { EventLog.Delete(EventLogName); }
catch { }
...
if (!EventLog.SourceExists(EventLogSource)) EventLog.CreateEventSource(EventLogSource, EventLogName);
while (!EventLog.SourceExists(EventLogSource)) { }
Run Code Online (Sandbox Code Playgroud)
但是当我使用EventLogSource进行日志记录时,条目仍然会进入"Application"而不是EventLogName.
注意:
我在评论中写了这篇文章,我认为这有助于更好地描述我的问题:在Windows事件查看器中,您会看到"Windows日志"和"应用程序".树中有另一个名为"Applications and Services Logs"的节点,我想在其下创建一个自定义日志.我能成功地做到这一点.问题是以前注册到"Application"的事件源不能从"Application"取消注册并在我自己的"MyCustomLog"中重新注册.
Windows中的事件系统会缓存有关源的一些信息.这意味着如果删除源并重新添加它,它将继续记录到最初使用的相同日志中.
没有记录的方法来强制事件系统清除此缓存.我知道的唯一方法是重新启动计算机 - 因此您需要删除源,重新启动,然后重新创建源.
| 归档时间: |
|
| 查看次数: |
1538 次 |
| 最近记录: |