Log Parser 2.2 和 ASP.NET


ASP.NET 支持语音列


Log Parser 2.2 和 ASP.NET

若要自定义此列与您的需求,我们希望邀请您提交您感兴趣的主题和您感兴趣的在将来解决知识文库文章和 Support Voice 专栏您想要查看的问题的主题的想法。您可以提交您的想法和反馈使用已对它提出的形式。还有一个链接到窗体中此列的底部。
欢迎使用 ASP.NET 支持语音列。我的名字是 Rahul Soni,我已经与微软大约两年现在。在本月的专栏中,我将讨论的一些事实有关日志分析器 2.2。我们进入特定方案之前,请允许我花点时间来描述日志分析器工具。

有关

Log Parser 是一个功能强大、 用途广泛的工具,提供基于文本的数据,如日志文件、 XML 文件、 CSV 文件以及关键数据源的通用查询访问 Microsoft Windows 操作系统事件日志、 注册表、 文件系统和 Active Directory 目录服务等。请
单击此处下载该工具。 在此版本中,您可以分析日志分析器工具中很容易的以下文件︰
IISW3C、 NCSA、 IIS、 IISODBC、 纸盒、 IISMSID、 HTTPERR、 URLSCAN、 CSV、 TSV、 W3C、 XML、 EVT、 ETW、 网络监视器、 REG、 广告、 TEXTLINE、 文字 WORD、 FS 和 COM.
我同意,命令行界面不是很直观的并且您将发现它一旦安装并运行该工具。但该工具直观感觉中的缺乏正在修补通过提供有关该工具的文档。我将给此处建议的一小部分︰ 不要这么快就让您的命令行界面。此工具是一位计算机高手工具包中的必不可少的并可以帮助您很多,尤其是如果您想要从性能的角度解决问题。

我不会要讨论"如何"使用日志分析器工具,因为文档非常不错,安装文件夹还包含一个"Samples\Queries"文件夹包含了少量样本。

因此,我已经完成了的日志分析器工具提升我位之后,让我回到我谈论的方案。

方案 1︰ 分析大型文本文件的特定文本

一个小问题的背景

您的客户遇到的"拒绝访问"的问题时那样东西。您推荐客户使用名为的另一个卓越工具
Filemon 之类,重现该问题。如果这是问题与资源的 Acl,Filemon 工具将能够捕获该错误。现在,您让客户给您发送已保存的 Filemon 日志文件。此处将出现不幸的一部分。获取该文件 (即 Filemon.log),但找到的大小是巨大 (Filemon 那样的日志数据的大量 !)。记事本将出现挂起,并且将会非常缓慢,在日志文件中找到的"拒绝访问"的行。Microsoft Office Excel 将拒绝完全打开的文件。现在做什么?

的答案︰打开日志分析器命令窗口,然后使用下面的命令︰
"选择文本,从文本,如 %拒绝访问 %C:\Filemon.log"LOGPARSER-i: TEXTLINE q︰ 关闭
什么我们在告诉日志分析器工具是每一行 (文本) 通过分析从给定的文件 (C:\Filemon.log) 的行中包含拒绝访问。-I: TEXTLINE命令行开关指定的输入的格式,和-q︰ 关闭命令行开关告诉它显示详细信息 (q [: ON |关闭]: 安静模式;)。如果您将在下面的输出上所示的统计数据和字段名称 (文本框) 的命令行参数-q将不存在。

输出示例

文本
7447    1:49:24 PM      explorer.exe:1200       DIRECTORY       C:\      Access Denied 
统计信息
Elements processed: 640444Elements output:    1
Execution time: 12.75 seconds


如何避免按 ENTER 多次,如果查询返回的记录数大于 10?

的答案︰使用的 rtp:-1您的查询中的参数 !

在您想要将输出重定向到一个文件的情况下,这将是一个必需的参数。此外,当您写入到标准输出,输出记录显示分批组成为此参数指定的值相等的行数。一旦一批行已显示,它会提示用户按任意键以显示下一批行。指定"-1"为此参数禁用批处理完全 !

使用查询文件

另一种方法来获得相同的结果,以简洁的方式是创建一个查询文件。这种方式,可以轻松地调整查询文件并从日志分析器工具的命令行运行它。除了之外,您可以轻松创建 GUI,根据您品味。GUI 加载已保存的 SQL 查询,并通过使用日志分析器工具运行查询。

如果您想要获得同样的效果 (如方案 1) 从 SQL 查询,您可以提供以下命令︰
LOGPARSER-i: TEXTLINE file:C:\LPQ\SearchAnyTextfile.sql q︰ 关闭
C:\LPQ\SearchAnyTextFile.sql 包含以下信息︰

注意:创建一个文件夹 LPQ C:\ 文件夹若要使用此列中所示的示例中。
Select Text as LineFromFileFROM C:\Filemon.log 
WHERE Text
LIKE '%Access Denied%'
如果您发现,查询现在看起来更清楚和更有意义。这种方式,您可以创建更多复杂和较大的查询,和一切是否适合于您的命令行,因为您正在使用。而不是整个查询的 SQL 文件。不能在命令行上仍容纳超过 260 个字符 !

保持使用查询文件的优点,我将在以下情况下使用此方法。我有所有我的查询保存在 C:\LPQ 中,扩展名为.sql (您可以使用您自己)。

方案 2︰ 查找从特定的文件夹,包括其子文件夹的十个最大文件

一个小问题的背景

您有一个文件夹,并有相当多的子文件夹和文件。您想要查找在该文件夹中包括其子文件夹前最大的 10 个文件。

我知道,对于一个特定的文件夹中,您只需更改视图 (在视图菜单上,单击详细信息) 在 Windows 资源管理器和排序按大小查看。但这里的问题是,您需要考虑以及子文件夹的内容。

的答案︰打开日志分析器工具命令窗口,然后使用下面的命令︰
LOGPARSER-i: FS file:C:\LPQ\Top10Files.sql q︰ 灭-递归:-1
Top10Files.sql 包含以下项目︰
SELECT TOP 10 Path, 
Name,
Size,
Attributes
FROM 'C:\Program Files\Microsoft Office\*.*'
ORDER BY Size DESC
这里-i: FS 表示我们要查询的文件系统。可以在文档中查看完整的 FS 输入的格式字段列表和相应框架查询。

-递归︰ 为-1 意味着我们要包括所有子文件夹。如果不希望所有的子文件夹或想要限制递归过程时,请使用 0、 1、 2 等等。数意味着分析器将转到的深度。0 表示没有递归、 2 表示深度 2,依此类推直到出现分析器。

输出示例

Path                                                         Name         Size     Attributes ------------------------------------------------------------ ------------ -------- ----------
C:\Program Files\Microsoft Office\Office10\WINWORD.EXE WINWORD.EXE 10738448 -A--R----
C:\Program Files\Microsoft Office\Office10\EXCEL.EXE EXCEL.EXE 9358096 -A--R----
C:\Program Files\Microsoft Office\Office10\OUTLLIB.DLL OUTLLIB.DLL 6326984 -A-------
C:\Program Files\Microsoft Office\Office10\POWERPNT.EXE POWERPNT.EXE 6093584 -A--R----
C:\Program Files\Microsoft Office\Office10\MSOWC.DLL MSOWC.DLL 3041880 -A-------
C:\Program Files\Microsoft Office\Office10\CLIPPIT.ACS CLIPPIT.ACS 2904417 -A-------
C:\Program Files\Microsoft Office\Office10\GRAPH.EXE GRAPH.EXE 2144824 -A-------
C:\Program Files\Microsoft Office\Office10\1033\OUTLLIBR.DLL OUTLLIBR.DLL 1977032 -A-------
C:\Program Files\Microsoft Office\Office10\1033\XLMAIN10.CHM XLMAIN10.CHM 1646072 -A-------
C:\Program Files\Microsoft Office\Office10\MSOWCW.DLL MSOWCW.DLL 1200177 -A-------


统计信息
Elements processed: 1000Elements output:    10
Execution time: 0.42 seconds

方案 3︰ 在您的 Web 站点中查找 20 慢的页面

一个小问题的背景

您正在使用 Microsoft Internet Information Services (IIS) 6、 有几个 ASP.NET 网站,,而不真正满意的性能。您想要修改服务器和所了解的有关从 Web 服务器正在提供服务的最高时间顶 20 页。它不是像确定最高时记录页,修复,和您的问题得到解决。遗憾的是,没有绝招来解决性能问题。至少应该有一种方法来启动。更正?

的答案︰打开日志分析器命令窗口,然后使用下面的命令︰
LOGPARSER-i: IISW3C file:C:\LPQ\Slowest20FilesInIIS.sql-o: DataGrid q︰ 关闭
Slowest20FilesInIIS.sql 包含下面的代码示例。
Select Top 20LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP],
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From
C:\ex060813.log
Order by time-taken desc

在这里,-i: IISW3C 表示,我们正在查询 IIS W3C 日志。可以在文档中查看完整的 IISW3C 输入的格式字段列表和相应框架查询。

-o︰ 数据网格表示的输出应显示在数据网格中,如下所示︰

Output - slowest pages

注意:若要使用此查询,您应该使用 IISW3C 日志记录并必须已经启用了高级日志记录属性。(打开您的 Web 站点的属性,单击网站选项卡,单击以选中启用日志记录,和将活动日志格式为W3C 扩展日志文件格式。单击属性,然后单击
高级选项卡,然后单击以选择所有选项。)

方案 4︰ 最常发现在 20 在您的 Web 站点中使用.aspx 页

一个小问题的背景

使用 IIS 6、 有几个 ASP.NET Web 站点,并且想要知道最常用的.aspx 文件,以便如果您优化性能的那些页,最终整个的 Web 站点服务器的好处。最好总是花时间调整最常用的页面,而不是尽量少使用的页面。(尽管可能有此规则的例外情况。说谨慎使用的该页是导致高 CPU 使用率,就此而言真的坏页 !)现在,如果您发现那里某一页需要很长的时间,提供 (方案 3),页是一种最常用的页面,应始终确认页行为能够在压力下正常。

的答案︰打开日志分析器工具命令窗口,然后使用下面的命令︰
LOGPARSER-i: IISW3C file:C:\LPQ\Popular20FilesInIIS.sql 图表类型︰ Bar3D groupSize: 640 x 480-视图︰ 在
Popular20FilesInIIS.sql 包含下面的代码示例。
Select Top 20cs-uri-stem as [Request URI],
COUNT(*) AS Hits
INTO MyChart.gif
FROM C:\ex060813.log
Group by cs-uri-stem ORDER BY Hits DESC
在本例中,图表的类型︰ Bar3D 告诉 Log Parser 工具哪种类型的图表来准备。-GroupSize参数指定的宽度和高度的目标图像,以像素为单位。可用的图表类型设置取决于安装在本地计算机上的 Microsoft Office Web 组件的版本。

下面是输出的外观︰

Output - most commonly used .aspx pages

正如您已经看到,可能有的多种可能的日志分析器工具证明确实有助于分析各种日志中的数据。只有创造力是这里的限制 !有几乎无限的方式在其中的数据可以反映好图片,而且它可能是可根据操作。我们必须接触是只是冰山一角 !例如,Microsoft Visual C#、 Microsoft Visual Basic.NET 等高级语言也可用于创建有用的程序使用的日志分析器工具的能力。请查看下面的"资源"部分。

资源

我想讨论的日志分析器工具,更多方案,我已在我的博客的日志分析器工具只需创建一个新节。如果您有任何方案或您要共享的日志分析器工具查询的建议,请邮件我
rahulso@microsoft.com,并且我会将其张贴在我尽快在下面的网站︰
始终,尽情地提交有关主题的意见要在将来解决列,或者在知识库中使用
窗体已对其询问

本文讨论的第三方产品是由与 Microsoft 无关的公司生产的。对这些产品的性能或可靠性,微软并不保证,暗示或其他方式。