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 值:

意義
HTTP_LOGGING_FLAG_LOCAL_TIME_ROLLOVER
將記錄檔變換時間變更為當地時間。 根據預設,記錄檔變換是以 GMT 為基礎。
HTTP_LOGGING_FLAG_USE_UTF8_CONVERSION
根據預設,unicode 記錄欄位會使用系統本機字碼頁轉換成多位元組。 如果設定此旗標,則會改用 UTF8 轉換。
HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY
僅記錄錯誤旗標僅會啟用記錄錯誤。 根據預設,會記錄錯誤和成功要求。

HTTP_LOGGING_FLAG_LOG_ERRORS_ONLYHTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY旗標是用來執行選擇性記錄。 一次只能設定其中一個旗標;它們互斥。

HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY
僅記錄成功旗標僅會啟用記錄成功要求。 根據預設,會記錄錯誤和成功要求。

HTTP_LOGGING_FLAG_LOG_ERRORS_ONLYHTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY旗標是用來執行選擇性記錄。 一次只能設定其中一個旗標;它們互斥。

SoftwareName

W3C 類型記錄中使用的選擇性軟體名稱字串。 此名稱不會用於其他類型的記錄。 如果此參數為 Null,HTTP 伺服器 API 會記錄預設字串。

SoftwareNameLength

軟體名稱的長度,以位元組為單位。 長度不能大於 MAX_PATH

如果 SoftwareName 成員為 Null,這個長度必須為零。

DirectoryNameLength

目錄名稱的長度,以位元組為單位。 長度不能大於 424 個位元組。

DirectoryName

記錄檔建立所在的記錄目錄。 目錄字串必須是完整路徑,包括磁碟機號。

應用程式可以使用遠端電腦的 UNC 路徑來啟用 UNC 記錄。

Format

指定下列其中一個記錄檔格式 的 HTTP_LOGGING_TYPE 列舉成員。

格式 意義
HttpLoggingTypeW3C
記錄格式為 W3C 樣式擴充記錄。 使用此格式,應用程式可以挑選要記錄的記錄欄位組合。 在 URL 群組上設定 W3C 記錄時,記錄類似于 IIS6 網站記錄。 在伺服器會話上設定 W3C 記錄時,此記錄功能會作為所有 URL 群組的集中式記錄。
HttpLoggingTypeIIS
記錄格式為 IIS6/5 樣式記錄。 此格式具有固定欄位定義;應用程式無法選取記錄的欄位。 此格式無法用於記錄伺服器會話。
HttpLoggingTypeNCSA
記錄格式為 NCSA 樣式記錄。 此格式具有固定欄位定義;應用程式無法選取記錄的欄位。 此格式無法用於記錄伺服器會話。
HttpLoggingTypeRaw
記錄格式是集中式二進位記錄。 此格式具有固定欄位定義;應用程式無法選取記錄的欄位。 此格式無法用於記錄 URL 群組。

Fields

當格式設定為 W3C 時所記錄的欄位。 這些可以是一或多個 HTTP_LOG_FIELD_常數 值。

當記錄格式為 W3C 時,應用程式必須指定記錄欄位,否則不會記錄任何欄位。

pExtFields

保留的。 設定為 0 (零) 或 Null

NumOfExtFields

保留的。 設定為 0 (零) 或 Null

MaxRecordSize

保留的。 設定為 0 (零) 或 Null

RolloverType

下列其中一個 HTTP_LOGGING_ROLLOVER_TYPE 列舉成員,指定記錄檔變換的準則。

變換類型 意義
HttpLoggingRolloverSize
記錄檔會在到達或超過指定的大小時變換。
HttpLoggingRolloverDaily
記錄檔會每天變換。
HttpLoggingRolloverWeekly
記錄檔會每週變換。
HttpLoggingRolloverMonthly
記錄檔會每月變換。
HttpLoggingRolloverHourly
記錄檔會每小時變換一次。

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 中, HttpSendHttpResponseHttpSendResponseEntityBody 已經過修訂,以允許應用程式傳遞 HTTP_LOG_FIELDS_DATA 結構,以便記錄回應。 在伺服器會話或 URL 群組上設定 HttpServerLoggingProperty 屬性並不表示已記錄 HTTP 回應。 除非對 HttpSendResponseEntityBodyHttpSendHttpResponse 包含選擇性 HTTP_LOG_FIELDS_DATA 結構,否則不會對 URL 群組或伺服器會話進行記錄。 如需詳細資訊,請參閱 HTTP_LOG_FIELDS_DATA 主題。

如需記錄檔格式的資訊,請參閱 IIS 記錄檔格式 主題。

需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
標頭 HTTP.h

另請參閱

HTTP 伺服器 API 2.0 版結構

HTTP_LOGGING_FLAG_常數

HTTP_LOGGING_ROLLOVER_TYPE

HTTP_LOGGING_TYPE

HTTP_LOG_FIELD_常數

HTTP_SERVER_PROPERTY

HttpCloseRequestQueue

HttpCreateRequestQueue

HttpSetRequestQueueProperty

HttpShutdownRequestQueue