http.h) (HTTP_LOGGING_INFO 结构
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 |
每小时 | exyymmddhh.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 |