刚开始,我想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
这可能不是最好的办法,但它为我工作。
尝试使用wevtutil (这是一个用于pipe理事件的Windows 命令行实用程序 )来查看是否可以提出适当的查询。
请参阅https://technet.microsoft.com/en-us/magazine/dd310329.aspx
和查询命令的帮助屏幕:
wevtutil qe /?
如果您更喜欢基于对话框的解决scheme,请按照以下说明在事件查看器上尝试XPath查询 : http : //blog.backslasher.net/filtering-windows-event-log-using-xpath.html但是,我担心Windows事件日志仅支持XPath 1.0的一个子集。 它只包含3个函数:position,band,timediff。
Get-WinEvent Powershell命令也有一些有趣的选项。
在你的(编辑)问题中,你声明你想要使用描述字段的子string进行过滤。 我不认为这将是可能的内置filter,我会使用wevtutil命令将所有相关的事件转储到XML, 然后过滤一些全function的parsing器(可以是一个简单的stringsearch,或具有完整的XPath的XMLparsing器function)。