如何在事件查看器中按应用程序分隔IIS事件日志

刚开始,我想build议我是非常新的IIS,所以提前道歉的任何明显的问题。

我已经做了一些关于这个话题的研究,我的发现是没有定论的。

这是我的场景。

我目前正在远程运行的服务器上运行IIS 6,其中托pipe了大约20个站点。

我已经确定可以使用事件查看器浏览不同Web应用程序上发生的错误。

我目前的问题是,似乎没有办法在“每个应用程序”的基础上过滤掉事件日志,而是根据它们发生的时间来随机出现。 还有一些ASP.NET Web事件,IIS-W3SVC-WP警告等等。

要确定将哪个警告分配给哪个应用程序,必须右键单击错误,转到“事件属性”和“应用程序path”,例如“HotelBookingSystem”的path。 这个的应用程序path将是“D:inetpub \ wwwroot \ HotelBookingSystem”。

我的问题是,有没有办法sorting每个应用程序的事件日志? 我想要做的是过滤所有的结果“应用程序path”。

我已经安装了微软的Log Parser Studios,所以相信可能有一种方法可以使用它来运行查询,但是我对SQL的了解还不足以尝试创build这样的查询。

任何援助将不胜感激。

我已经设法解决这个问题,但它是一个相当长的啰嗦方法。

在“事件查看器”上,我右键单击“应用程序”窗口日志,并将整个日志保存到.txt文件。

我将这个.txt文件从远程服务器复制到本地机器上。

我把Log Parser 2.2安装到我的机器上(可以在这里下载

我通过在本地机器上打开命令提示符并导航到我已经安装它的位置(例如Program Files(x86)> Log Parser 2.2>)来访问Log Parser。

继续从这里,我进入了下面的命令,search一个string(在我的情况下,应用程序的名称),也是date,所以我可以缩小search到一个特定的date。 我也在数据网格中打印出结果;

logParser.exe "select * from **C:\NAME_OF_FILE.txt** WHERE text LIKE '%10/02/2015%' AND text LIKE '**YOUR_STRING**%'" -o:datagrid 

你也可以select把结果放到一个输出文件中,在我的情况下,

 -o:CSV > C:\temp\Test.csv 

这可能不是最好的办法,但它为我工作。

  1. 尝试使用wevtutil (这是一个用于pipe理事件的Windows 命令行实用程序 )来查看是否可以提出适当的查询。

    请参阅https://technet.microsoft.com/en-us/magazine/dd310329.aspx

    和查询命令的帮助屏幕:

    wevtutil qe /?

  2. 如果您更喜欢基于对话框的解决scheme,请按照以下说明在事件查看器上尝试XPath查询 : http : //blog.backslasher.net/filtering-windows-event-log-using-xpath.html但是,我担心Windows事件日志仅支持XPath 1.0的一个子集。 它只包含3个函数:position,band,timediff。

  3. Get-WinEvent Powershell命令也有一些有趣的选项。

在你的(编辑)问题中,你声明你想要使用描述字段的子string进行过滤。 我不认为这将是可能的内置filter,我会使用wevtutil命令将所有相关的事件转储到XML, 然后过滤一些全function的parsing器(可以是一个简单的stringsearch,或具有完整的XPath的XMLparsing器function)。