分享
 
 
 

ASP 3.0高级编程(二十八)

王朝asp·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

6.2.11 Logging Utility组件

Logging Utility组件是ASP 3.0的新组件,提供了访问日志文件的方法,这个日志文件是由服务器支持的用于Web和FTP网站的IIS创建的。

1. Logging Utility组件的成员

Logging Utility组件提供了六种方法,能读取日志文件的内容、把新记录写进已存在的日志文件中。这些方法和上一章讨论的FileSystemObject对象的方法有相似性,如表6-9所示:

表6-9 Logging Utility组件的方法及说明

方 法

说 明

AtEndOfLog()

用ReadLogRecord方法遍历记录时,如果文件中的所有记录都已读出,返回值为True

CloseLogFiles(io_mode)

关闭打开的日志文件,io_mode的值指定要关闭的文件,常数ForReading(1)表示关闭打开供读出的所有文件,ForWriting(2)表示关闭打开供写入的所有文件,AllOpenFiles(32)表示关闭打开的所有文件

OpenLogFile(filename,io_mode,

service_name,service_instance,

output_format)

打开filename指定的日志文件或日志文件集,可选的io_mode参数可以设置成ForReading(缺省值,1)或ForWriting(2)。当读取取一个特定的IIS服务(例如“W3SVC”和“1”)时,可选的service_name和service_instance参数限制从文件中返回的记录。可选的output_format参数指明写入文件时使用的格式

ReadFilter(start,end)

当在规定的时间和日期范围内读取文件时,限制返回的记录,两个参数都是可选的,如果忽略的话,start是文件的第一个记录,end是最后一个记录

ReadLogRecord()

从用OpenLogFile方法打开的当前日志文件中读取下一个记录

WriteLogRecord(logging_object)

从打开供读出的文件中把记录写入一个打开供写入的文件中,参数logging_object是一个引用保存源记录的Logging Utility组件实例的对象变量

Logging Utility组件提供了二十种与IIS日志记录相对应的属性

属 性

说 明

BytesReceived

请求时从浏览器收到的字节数

BytesSent

响应时送至浏览器的字节数

ClientIP

客户机或其主机(即代理服务器)的IP地址

Cookie

在请求中传送的cookie内容

CustumFields

加到请求中的定制报头的一个数组

DataTime

请求的日期和时间(GMT)

Method

操作类型,如“Get”和“Post”

ProtocolStatus

返回到客户机的状态消息,即“200 OK”

ProtocolVersion

协议版本字符串,如“HTTP/1.1”

Referer

包含初始化请求链接的网页的URL

ServerIP

IIS机器的IP地址

ServerName

IIS服务器的机器名

ServerPort

请求到达的端口号,如“80”

ServiceName

服务器名称,如“MSFTPSVC”或“W3SVC”

TimeTaken

检索和创建网页的总处理时间

URIQuery

请求中加到URL的查询字符串中的所有参数

URIStem

请示的目标URL

UserAgent

由客户机发送的用户代理字符串

UserName

如果不是匿名地访问服务器,UserName是用户的登录名

Win32Status

处理了请求后返回的Win32状态码

||||||2. 使用Logging Utility组件

Logging Utility组件最普遍的应用是用于对日志文件的自定义查询。从现有文件中选择一些记录写入新文件的能力,意味着能够汇总某些类型的条目,或者有选择性地挑出一些记录将来使用。

为了使用ForReading、ForWriting和AllOpenFiles常数,必须在网页的<HEAD>部分包含METADATA指令。

<!-- METADATA TYPE="typelib" FILE="C:\WINNT\system32\inetsrv\logscrpt.dll" -->

为了遍历记录,仅须打开文件并且重复调用ReadLogRecord,直到AtEndOfLog的返回值为True。在下面的例子中将过滤记录,仅获得最后24小时以内的记录。

'Create the component instance

Set objLogUtil = Server.CreateObject("MSWC.IISLog")

'open the log file for reading, for the W3SVC instance number 1

objLogUtil.OpenLogFile "extend#.log", ForReading, "W3SVC", 1, 0

'set a filter for the last day's records only

objLogUtil.ReadFilter DateAdd("d", -1, Now), Now

'loop through the records

Do While Not objLogUtil.AtEndOfLog

objLogUtil.ReadLogRecord 'read the next record

Response.Write "Request received for page " & objLogUtil.URLStem & " on " _

& objLogUtil.DateTime & " from IP address " _

& objLogUtil.ClientIP & ".<BR>"

Loop

objLogUtil.CloseLogFiles(ForReading) 'close the file(s)

本书提供了演示使用Logging Utility组件的一个示例网页,这个网页可以从ASP Installable Components主菜单运行。

确保在Internet Services Manager中不允许匿名访问包含示例文件的目录或loggingutility.asp文件,否则将不能访问日志文件。打开loggingutility.asp文件或包含该文件的目录的Properties对话框的Directory Security选项卡,点击Anonymous access and authentication control部分的Edit按钮,打开Authentication Method对话框,并关闭Anonymous access选项。

必须改变日志文件的文件名以适合你的计算机。在缺省Web网站的Properties对话框的Web Site选项卡中,打开W3C Extended Logging

在这个对话框中,点击Properties按钮,打开Extended Logging Properties对话框,在这里会打开要用的文件名。选择固定大小的日志文件选项,这样文件名将是extend1.log和extend2.log等等。

打开Extended Properties选项卡,确保选中想要的条目

现在可以运行示例网页并检查结果,可以使用下列代码在HTML表中显示数值。

<%

Set objLogUtil = Server.CreateObject("MSWC.IISLog")

objLogUtil.OpenLogFile "extend#.log", ForReading, "W3SVC", 1, 0

objLogUtil.ReadFilter DateAdd("d", -1, Now), Now

%>

<TABLE CELLPADDING="10">

<TR>

<TH>Date/Time</TH>

<TH>Client IP</TH>

<TH>Bytes Sent</TH>

<TH>Target URL</TH>

</TR>

<%

Do While Not objLogUtil.AtEndOfLog

objLogUtil.ReadLogRecord 'read the next record

%>

<TR>

<TD><% = objLogUtil.DateTime %></TD>

<TD><% = objLogUtil.ClientIP %></TD>

<TD><% = objLogUtil.BytesSent %></TD>

<TD><% = objLogUtil.URLStem %></TD>

</TR>

<%

Loop

objLogUtil.CloseLogFiles(ForReading)

%>

6.3 第三方服务器组件

在本节中,简要概述ASP系统中要用到的一些常见的商用和免费的第三方服务器组件。

开发Web网站时,必须完成的两个任务是管理兼容性以及向服务器上载文件。下面将介绍的两个组件能有助于完成上述的任务,而且还介绍另外一个组件,可取代Microsoft的Registry Access组件(该组件一般是从相应的Web网站得到的)。

6.3.1 BrowserHawk组件

很多人使用由IIS及ASP提供的Browser Capability组件时,都会遇到一个麻烦,浏览器的定义文件(browscap.ini)要求定期的维护或替换以跟得上新版浏览器的要求。

Cyscape公司提供了broscap.ini的升级版本,同时提供了他们自己的能在服务器端和客户端进行浏览器检测的组件。而且,还提供了便捷的图形界面用于查看及修改自己的浏览器定义文件

可以看到对于每个浏览器类型,都有许多属性,如动态HTML、样式表、JavaScript版本、文件上载能力、SSL(Secure Sockets Layer)支持、操作系统细节以及语言等。与Microsoft的Browser Capability组件一样,也可以添加自己的内容。这里还有一个非常有用的具有向导风格的特性,能帮助我们把新的浏览器类型添加到定义文件中

BrowserHawk组件具有辩认出新的浏览器(采用一项特殊的模式匹配算法)以及那些缺省支持的一系列浏览器的能力,包括Opera和WebTV。使用过滤功能添加新属性也很容易。

当然,BrowserHawk组件的最大优点可能是定期对来自Cyscape公司的Web网站的浏览器定义文件新版本进行自动检测,同时把一些内容吸收合并到当前使用的定义文件里,这意味着没有必要不断地将定义文件拷贝到所有的Web服务器中。

BrowserHawk组件使用起来比较容易,与Browser Capability组件是兼容的,需要做的是在创建组件实例的Server.CreateObject方法或<OBJECT>元素中改变ProgID。把“MSWC.BrowserType”改为“cyScape.browserObj”。

Set objBCap = Server.CreateObject(“cyScape.browserObj”)

对可能出现的问题,应该阅读BrowserHawk组件的文档。 可从Cyscape公司的Web网站(http://www.cyscape.com)下载BrowserHawk的拷贝。本章中已经包含了使用BrowserHawk组件的示例网页,使读者能够了解如何使用BrowserHawk组件,在Chapter06目录下的BrowserHawk子目录中可查找到这个示例页面。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有