.net – EventLog.WriteEntry和EventLog.WriteEvent方法之间的差异

我尝试使用EventLog类的WriteEntry和WriteEvent方法。

EventLog.WriteEntry("Saravanan", "Application logs an entry", 
                     EventLogEntryType.Information, 2, 3);
EventLog.WriteEvent("Saravanan",  new EventInstance(2, 3), 
                                 "Application logs an event");

两者输出相同的结果。

这些方法的用法有什么不同吗?

如果只有微小的差别,为什么不通过WriteEvent()或WriteEntry()方法的重载,而不是引入一个新的方法?

EventLog.WriteEntry是一种“快速和脏”的方式写入事件日志,您可以在其中写入一个字符串。 EventLog.WriteEvent使您能够充分利用本机Win32 API。然而,要做到这一点,你应该创建一个本地化的消息文件,然后使用message compiler (mc.exe)编译。每个事件可以包含替换字符串,并可以本地化以匹配计算机上的区域设置。

为了避免创建消息文件的额外步骤,事件日志API的.Net包装器使用的消息只是插入作为参数提供的字符串。这些消息由EventLog.WriteEntry使用,并作为嵌入式资源存储在.Net文件夹中的EventLogMessages.dll中。

通常使用EventLog.WriteEntry是足够的,但如果你需要本地化你的消息或想要维护他们的源代码之外,你应该创建一个消息文件,并使用EventLog.WriteEvent。

http://stackoverflow.com/questions/3599762/difference-between-eventlog-writeentry-and-eventlog-writeevent-methods

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:.net – EventLog.WriteEntry和EventLog.WriteEvent方法之间的差异