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

时间:2011-01-20 18:57:40

标签: c# asp.net event-log

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

4 个答案:

答案 0 :(得分:13)

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

从这篇文章Technology Summary for Reading and Managing Event Logs

  

应用程序和服务日志是一个   不同类别的事件日志比   Windows日志。应用和   服务日志存储来自的事件   单个应用程序或组件   比可能发生的事件   全系统的影响。他们有个   由...定义的各种名称   事件提供者。

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

答案 1 :(得分:1)

这是.NET 3.5的一项新功能,可用于。微软推出了一个新的用户友好的库here。它说,很可能已经过时,这些类只能在Windows Vista中运行,但我猜测它们可以在Windows 7和Server 2008中访问。

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

答案 2 :(得分:-2)

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

答案 3 :(得分:-5)

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

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

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