2011-01-20 59 views
6

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

回答

-4

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

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

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

+8

是多数民众赞成是我生成事件到日志的方式,但这种方式,我得到的结构:“应用程序和服务日志\\ [日志]“...但我想要的是一个结构:”应用程序和服务日志\\ [FOLDER] \\ [日志]“ 像例如关于”应用程序和应用程序和Windows日志事件查看器上的服务日志\ Microsoft \ Windows \ Dhcp-Client \\ [Log] ... – RedEagle 2011-01-21 09:22:01

+0

已经下载此回答因为我有和RedEagle一样的经历。 – 2012-10-31 22:01:15

1

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

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

-2

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

12

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

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

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

因此,您需要创建一个自定义的事件发布者。这里有一对夫妇的文章更多信息:

相关问题