ASP 3.0進階編程(二十八)

來源:互聯網
上載者:User
編程|進階 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日誌記錄相對應的屬性,如表6-10所示:
表6-10 Logging Utility組件的屬性及說明
屬 性
說 明

BytesReceived
請求時從瀏覽器收到的位元組數

BytesSent
響應時送至瀏覽器的位元組數

ClientIP
客戶機或其主機(即Proxy 伺服器)的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



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.