HTTP_LOGGING_INFO 結構 (HTTP.h)
HTTP_LOGGING_INFO結構可用來在 URL 群組或伺服器會話上啟用伺服器端記錄。
在 URL 群組或伺服器會話上設定或查詢 HttpServerLoggingProperty 時,必須使用這個結構。
語法
typedef struct _HTTP_LOGGING_INFO {
HTTP_PROPERTY_FLAGS Flags;
ULONG LoggingFlags;
PCWSTR SoftwareName;
USHORT SoftwareNameLength;
USHORT DirectoryNameLength;
PCWSTR DirectoryName;
HTTP_LOGGING_TYPE Format;
ULONG Fields;
PVOID pExtFields;
USHORT NumOfExtFields;
USHORT MaxRecordSize;
HTTP_LOGGING_ROLLOVER_TYPE RolloverType;
ULONG RolloverSize;
PSECURITY_DESCRIPTOR pSecurityDescriptor;
} HTTP_LOGGING_INFO, *PHTTP_LOGGING_INFO;
成員
Flags
HTTP_PROPERTY_FLAGS結構,指定屬性是否存在。
LoggingFlags
選擇性記錄旗標會變更預設記錄行為。
這些可以是下列其中一或多個 HTTP_LOGGING_FLAG 值:
SoftwareName
W3C 類型記錄中使用的選擇性軟體名稱字串。 此名稱不會用於其他類型的記錄。 如果此參數為 Null,HTTP 伺服器 API 會記錄預設字串。
SoftwareNameLength
軟體名稱的長度,以位元組為單位。 長度不能大於 MAX_PATH。
如果 SoftwareName 成員為 Null,這個長度必須為零。
DirectoryNameLength
目錄名稱的長度,以位元組為單位。 長度不能大於 424 個位元組。
DirectoryName
記錄檔建立所在的記錄目錄。 目錄字串必須是完整路徑,包括磁碟機號。
應用程式可以使用遠端電腦的 UNC 路徑來啟用 UNC 記錄。
Format
指定下列其中一個記錄檔格式 的 HTTP_LOGGING_TYPE 列舉成員。
Fields
當格式設定為 W3C 時所記錄的欄位。 這些可以是一或多個 HTTP_LOG_FIELD_常數 值。
當記錄格式為 W3C 時,應用程式必須指定記錄欄位,否則不會記錄任何欄位。
pExtFields
保留的。 設定為 0 (零) 或 Null。
NumOfExtFields
保留的。 設定為 0 (零) 或 Null。
MaxRecordSize
保留的。 設定為 0 (零) 或 Null。
RolloverType
下列其中一個 HTTP_LOGGING_ROLLOVER_TYPE 列舉成員,指定記錄檔變換的準則。
變換類型 | 意義 |
---|---|
|
記錄檔會在到達或超過指定的大小時變換。 |
|
記錄檔會每天變換。 |
|
記錄檔會每週變換。 |
|
記錄檔會每月變換。 |
|
記錄檔會每小時變換一次。 |
RolloverSize
大小上限,以位元組為單位,記錄檔會在此之後變換。 值 HTTP_LIMIT_INFINITE 表示不限大小。 最小值不能小於 HTTP_MIN_ALLOWED_LOG_FILE_ROLLOVER_SIZE ( 1024 * 1024) 。
此欄位僅用於 HttpLoggingRolloverSize 變換類型,而且應該設定為零其他所有類型。
當變換類型為 HttpLoggingRolloverSize時,應用程式必須指定記錄檔的大小上限。
pSecurityDescriptor
套用至記錄檔目錄和所有子目錄的安全性描述元。 如果這個成員是 Null,則會使用系統預設 ACL,或 ACL 繼承自父目錄。
備註
HttpServerLoggingProperty屬性會設定四種伺服器端記錄類型的其中一種:HttpLoggingTypeW3C、HttpLoggingTypeIIS、HttpLoggingTypeNCSA 或 HttpLoggingTypeRaw。 在伺服器會話上設定此屬性時,它會作為該伺服器會話下所有 URL 群組的集中式記錄形式。 路由傳送至伺服器會話下其中一個 URL 群組的要求會記錄在一個集中式記錄檔中。 對HttpSetServerSessionProperty的呼叫中,會將記錄檔的組態參數傳入HTTP_LOGGING_INFO結構中。
在 URL 群組上設定此屬性時,只會對路由至 URL 群組的要求執行記錄。 記錄檔會在要求抵達 URL 群組或伺服器會話時建立,記錄檔不會在設定記錄時建立。
應用程式必須確定 DirectoryName 成員中指定的目錄是唯一的。
記錄檔名稱是以指定的變換類型為基礎。 下表顯示記錄檔的命名慣例。
格式 | 變換類型 | 檔案名模式 |
---|---|---|
Microsoft IIS 記錄格式 | 大小 | inetsvnn.log |
每小時 | inyymmddhh.log | |
每日 | inyymmdd.log | |
每週 | inyymmww.log | |
每月 | inyymm.log | |
NCSA 通用記錄檔格式 | 大小 | ncsann.log |
每小時 | ncyymmddhh.log | |
每日 | ncyymmdd.log | |
每週 | ncyymmww.log | |
每月 | ncyymm.log | |
W3C 擴充記錄檔格式 | 大小 | extendnn.log |
每小時 | exyymmddh.log | |
每日 | exyymmdd.log | |
每週 | exyymmww.log | |
每月 | exyymm.log |
表格中的字母 yy、mm、ww、dd、hh 和 nn 代表下列數位:
- yy:年份的兩位數標記法。
- mm:月份的兩位數標記法。
- ww:周的兩位數標記法。
- dd:當天的兩位數標記法。
- hh:24 小時標記法中小時兩位數標記法。
- nn:數位序列的兩位數表示。
請注意,在 HTTP 2.0 版 API 中, HttpSendHttpResponse 和 HttpSendResponseEntityBody 已經過修訂,以允許應用程式傳遞 HTTP_LOG_FIELDS_DATA 結構,以便記錄回應。 在伺服器會話或 URL 群組上設定 HttpServerLoggingProperty 屬性並不表示已記錄 HTTP 回應。 除非對 HttpSendResponseEntityBody 和 HttpSendHttpResponse 包含選擇性 HTTP_LOG_FIELDS_DATA 結構,否則不會對 URL 群組或伺服器會話進行記錄。 如需詳細資訊,請參閱 HTTP_LOG_FIELDS_DATA 主題。
如需記錄檔格式的資訊,請參閱 IIS 記錄檔格式 主題。
需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
標頭 | HTTP.h |