sar*_*ake 8 c# event-log event-viewer
当我使用以下代码写入应用程序事件日志时,一切正常:
EventLog log = new EventLog();
log.Source = "Application";
log.WriteEntry("test message", EventLogEntryType.Error);
Run Code Online (Sandbox Code Playgroud)
当我使用来自MSDN和所有其他博客的代码时,我收到了安全错误(我猜是因为CreateEventSource引发了它).
string sSource = "MyWebService";
string sLog = "myApplication";
string sMsg = errorMessage;
if (!EventLog.SourceExists(sSource))
EventLog.CreateEventSource(sSource, sLog);
EventLog.WriteEntry(sSource, sMsg, EventLogEntryType.Error);
Run Code Online (Sandbox Code Playgroud)
那么,如果我需要的是写入默认存在的应用程序日志,是否需要检查源是否存在?
写入EventViewer的正确方法是什么?
CreateEventSource方法在事件日志中创建新源,这允许您在应用程序自己的组中编写应用程序的日志,而不是在通用Application
组中写入.
也许您收到错误,因为您用来创建事件源的用户没有创建它的权限,如果您使用的是Vista/7操作系统,请尝试以管理员身份运行您的程序.
登录事件查看器的正确方法取决于您的需求,如果您的应用程序生成大量日志消息并且您希望将此日志分组到特定于应用程序的容器中,则可能最好创建特定于应用程序的日志事件源并写入登录它,相反,如果您的应用程序生成很少的日志消息,并且不需要将它们组合在一起,您可以使用通用Application
日志事件源...