我想要创建多个服务,并且希望它们将每个服务记录在我指定的同一目录/文件夹下的日志条目中,这样当我打开 Windows 事件查看器时,我可以看到它们全部放置在一个文件夹中。例如,service1 将登录到 service1_log,service2 将登录到 service2_log,并且 service1_log 和 service2_log 都将驻留在名为 Myservices 的文件夹中。
我在 Windows 事件日志 API 或任何其他 API 中没有找到任何适合此问题的内容。我可以在 Windows 事件查看器中看到有文件夹,但我只能在日志层次结构的根目录中创建日志。
提前致谢
托马斯
Windows 事件日志不登录目录。然而,事件日志被分成几个日志(应用, System, Security等),它们在事件查看器中显示为文件夹。您可以创建自己的日志,该日志将显示为单独的文件夹应用程序和服务日志(假设 Windows Vista 或更高版本)通过调用EventLog.CreateEventSource http://msdn.microsoft.com/en-us/library/2awhba7a.aspx.
但是,我不会建议您创建自己的日志。相反,您可以让您的服务登录到应用日志。通过让每个服务使用单独的事件源,您可以轻松过滤应用log 只显示感兴趣的日志消息。再次假设 Windows Vista 或更高版本,您可以在下面创建一个自定义视图自定义视图节点并按源过滤它。然后,此文件夹将仅显示来自您的服务的日志消息。
快进五年:现在,创建您自己的日志非常容易,可以在Application and Services Logs
通过使用EventSource https://msdn.microsoft.com/en-us/library/system.diagnostics.tracing.eventsource(v=vs.110).aspx允许您创建事件的类Windows 事件跟踪 (ETW) https://msdn.microsoft.com/en-us/library/windows/desktop/bb968803(v=vs.85).aspx。 ETW 是高度可配置的,具有非常好的性能,但最初使用起来也有点困难。消息大小有限,安装新清单需要管理权限,而渠道如诊断正在收集数据,您无法查看日志等。但总而言之,ETW 是记录到日志的一个很好的选择应用事件日志。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)