将事件日志组织到文件夹中

Tom*_*mas 5 c# windows event-log

我想创建多个服务,我希望它们在我指定的同一目录/文件夹下的日志条目中记录每个服务,因此当我打开Windows事件查看器时,我可以看到它们都放在一个文件夹中.例如,service1将登录到service1_log,service2将登录到service2_log,service1_log和service2_log都将驻留在名为Myservices的一个文件夹中.我没有在Windows事件日志API或任何其他适合此问题的API中找到任何内容.我可以在Windows事件查看器中看到有文件夹,但我只能在日志层次结构的根目录中创建日志.

在此先感谢托马斯

Mar*_*age 5

Windows事件日志不会登录到目录。但是,事件日志分为几个日志(应用程序系统安全性等),在事件查看器中显示为文件夹。您可以通过调用创建自己的日志,该日志将在“ 应用程序和服务日志”(假设Windows Vista或更高版本)中显示为单独的文件夹EventLog.CreateEventSource

但是,我不建议您创建自己的日志。相反,您可以让您的服务记录到应用程序日志中。通过让每个服务使用单独的事件源,您可以轻松过滤应用程序日志,使其仅显示感兴趣的日志消息。再次假设使用Windows Vista或更高版本,则可以在“ 自定义视图”节点下创建一个自定义视图,并按源对其进行过滤。然后,此文件夹将仅显示来自您的服务的日志消息。


快进五年:现在,Application and Services Logs使用EventSource类可以很容易地创建您自己的日志,该类允许您为Windows事件跟踪(ETW)创建事件。ETW是高度可配置的,具有非常好的性能,但是最初使用起来也有些困难。消息的大小受到限制,安装新清单需要管理权限,而诸如Diagnostics之类的通道正在收集您无法查看日志等的数据。但是总的来说,ETW是记录应用程序事件日志的一个不错的选择。