在 ASP NET 项目 (C#) 上,我使用 System.Diagnostics 命名空间来记录错误、警告和信息。 使用 Windows 7,我看到为该项目设置的日志位于“应用程序和服务日志”下。 例如,如何在代码中设置创建文件夹并将其放在“应用程序和服务日志[某些文件夹]\应用程序和服务日志”下?
“应用程序和服务日志”部分中存储的日志是自定义事件发布者的日志,而不是简单的 Windows 事件日志。
摘自本文读取和管理事件日志的技术摘要:
应用程序和服务日志是 不同类别的事件日志 Windows 日志。应用程序和 服务日志存储来自 单个应用程序或组件 比可能发生的事件 全系统的影响。他们有一个 定义的各种名称 活动提供商。
因此,您需要创建一个自定义事件发布器。以下是包含更多信息的几篇文章:
这是.NET 3.5的新功能。微软推出了一个新的库;请阅读此处。它说这些类只能在 Windows Vista 中工作,但我大胆猜测它们可以在 Windows 7 和 Server 2008 中访问。
我没有在那里找到代码来解释如何像您所要求的那样创建新的层次结构,但是,我相信这是大方向。
您是否考虑过使用更通用的日志机制来提供更大的灵活性?例如 log4net。然后您可以随时在日志文件和事件日志以及其他方法之间切换,而无需更改一行代码。
创建
Event Source
时,指定 Log Name
。它将成为事件查看器中的“文件夹”。
EventLog.CreateEventSource("Source", "Log name");
EventLog.WriteMessage("Source", "Your message");
请注意,创建事件源可能需要计算机上的附加权限。在 ASP.Net 上下文中,我建议创建一个用于创建事件源的 Windows 或控制台应用程序。以管理员身份运行一次。