65.9K
CodeProject 正在变化。 阅读更多。
Home

Event Log RSS Feed 生成器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.33/5 (34投票s)

2005年5月26日

3分钟阅读

viewsIcon

222760

downloadIcon

1292

一个简单的实用工具,用于提供对系统事件日志消息的远程、有组织的访问。

引言

您有多少次需要检查您的生产 Web 服务器的事件日志,但由于您没有登录该服务器的权限,您不得不等待管理员或网站管理员有空并为您打开事件查看器?

以我的经验,这种情况经常发生。 经常发生到让我在编写将消息记录到事件日志的代码之前三思而后行。 不幸的是(或幸运的是),事件日志仍然是一个非常可靠的记录诊断消息的地方,即使我们将日志记录到自定义数据库基础设施,也可能会出现该数据库不可用的情况,我们需要一个后备计划。 事件日志通常是记录重要消息的最后一个好地方。 除此之外,许多其他应用程序和服务已经将其错误和警告记录在事件日志中,因此我们总是会在某个时候回到它。

这里需要的是一种更灵活的方式来访问事件日志。 更灵活但安全性不降低。 我们还需要保护我们的系统消息免受窥探。

进入 RSS 订阅源生成器

考虑到这个目标,我编写了一个非常简单的实用程序,用于从安装了 IIS 和 ASP.NET 1.x 的任何系统中的事件日志生成 RSS 订阅源。

该实用程序由一个没有代码隐藏的 ASP.NET WebForm 组成。 这个单独的.aspx文件接受查询字符串参数,使您能够更好地指定您感兴趣的消息数量和类型。

使用代码

要启动此实用程序,您只需解压缩随附的.zip文件,并将文件GetLog.aspxrssToTable.xsl放置在任何现有的或新的 ASP.NET 应用程序虚拟文件夹中。 将文件放在那里之后,您只需浏览到它即可访问 RSS XML,例如

http://yourserver/thefolder/GetLog.aspx

如果您的浏览器支持 XSLT(如 IE),则生成的 XML 将自动格式化为 HTML,以帮助您找到所需的信息。

默认情况下,上面的 URL 将返回应用程序事件日志中的最后 25 个条目。 您可以使用top参数更改返回的条目数,例如

http://yourserver/thefolder/GetLog.aspx?top=40

您可以使用log参数更改所需的事件日志,例如

http://yourserver/thefolder/GetLog.aspx?log=YourLog

注意:系统和安全日志在程序上被阻止,以防止访问关键信息。

您可以使用types参数按特定类型的消息进行过滤,例如

http://yourserver/thefolder/GetLog.aspx?GetLog.aspx?types=error,warning

如您所见,此参数是以逗号分隔的事件日志消息类型列表。 可用类型为 Information、Warning、Error、SuccessAudit 和 FailureAudit,但您可能对前三种类型更感兴趣。

您可以使用source参数限制所需的消息源,例如

http://yourserver/thefolder/GetLog.aspx?source=MSSQLSERVER

为了获得更有趣的过滤,您可以组合上述任何参数,以更接近您正在监视的消息

http://yourserver/thefolder/GetLog.aspx?GetLog.aspx?
   top=40&types=error&log=MyLog&source=MyApplication

安全注意事项

事件日志消息通常包含不应落入坏人之手的宝贵信息。 当您在任何服务器中部署此实用程序时,请注意不要让那些不应该阅读这些消息的人访问它。

配置包含该文件的 ASP.NET 应用程序文件夹,使其在没有适当身份验证的情况下不可访问,或仅可通过内部 IP 地址或其他保护您的消息的方案访问。

RSS 订阅源聚合器

此实用程序与您喜欢的体面的 RSS 聚合器相结合,可以为您提供一系列订阅的订阅源,使您可以密切关注您的应用程序并在发生某些错误时搜索诊断消息。

历史

  • 2005 年 6 月 27 日th - 根据评论中的建议,更改了 GUID 格式和在禁止查询时返回的 HTTP 错误代码。 添加了 XSLT 转换到原始输出,以使浏览器中的显示更漂亮。
  • 2005 年 5 月 25 日th - 代码已提交。
© . All rights reserved.