如何在文件夹中存储事件日志

在ASP .NET项目(C#)上,我使用System.Diagnostics命名空间来记录错误,警告和信息。 使用Windows 7我看到我为项目设置的日志位于“应用程序和服务日志”下。 如何设置代码以创建文件夹并将其放在“应用程序和服务日志[某些文件夹] \应用程序和服务日志”下,例如?

创建Event Source ,请指定Log Name 。 它将成为事件查看器中的“文件夹”。

 EventLog.CreateEventSource("Source", "Log name"); EventLog.WriteMessage("Source", "Your message"); 

请注意,创建事件源可能需要在计算机上拥有其他权限。 在ASP.Net上下文中,我建议创建一个创建事件源的窗口或控制台应用程序。 以管理员身份运行一次。

存储在“应用程序和服务日志”部分中的日志是自定义事件发布者的日志,而不是简单的Windows事件日志。

从本文阅读和管理事件日志的技术摘要 :

应用程序和服务日志是与Windows日志不同的事件日志类别。 “应用程序和服务”日志存储来自单个应用程序或组件的事件,而不是可能对整个系统产生影响的事件。 它们具有由事件提供者定义的各种名称。

因此,您需要创建自定义事件发布者。 以下是一些有更多信息的文章:

  • 开发事件发布者
  • 使用事件报告和跟踪进行开发

这是.NET 3.5的一个新function,可用于。 微软在这里引入了一个不太用户友好的新库。 它说,很可能已经过时,这些类只能在Windows Vista中运行,但我猜想它们可以在Windows 7和Server 2008中访问。

我没有在那里找到代码来解释如何创建一个像你要求的新层次结构,但是,我相信这是在大方向。

您是否考虑过使用更通用的日志机制来提供更大的灵活性? 例如log4net。 然后,您可以随时在日志文件和事件日志以及其他方法之间切换,而无需更改代码行。