структура HTTP_LOGGING_INFO (http.h)
Структура HTTP_LOGGING_INFO используется для включения ведения журнала на стороне сервера в группе URL-адресов или в сеансе сервера.
Эту структуру необходимо использовать при задании или запросе HttpServerLoggingProperty в группе URL-адресов или сеансе сервера.
Синтаксис
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, API HTTP-сервера регистрирует строку по умолчанию.
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-адресов в сеансе сервера, регистрируются в одном централизованном файле журнала. Параметры конфигурации для файла журнала передаются в структуре HTTP_LOGGING_INFO в вызове HttpSetServerSessionProperty.
Если это свойство задано для группы 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: двухзначное представление числовой последовательности.
Обратите внимание, что в API HTTP версии 2.0 httpsendHttpResponse и HttpSendResponseEntityBody были изменены , чтобы разрешить приложениям передавать HTTP_LOG_FIELDS_DATA структуру, чтобы ответ можно было регистрировать в журнале. Задание свойства HttpServerLoggingProperty для сеанса сервера или группы URL-адресов не означает, что http-ответы регистрируются в журнале. Ведение журнала в группе URL-адресов или сеансе сервера не будет выполняться, если вызовы HttpSendResponseEntityBody и HttpSendHttpResponse не включают необязательную структуру HTTP_LOG_FIELDS_DATA . Дополнительные сведения см. в разделе HTTP_LOG_FIELDS_DATA .
Сведения о форматах файлов журнала см. в разделе Форматы файлов журнала IIS .
Требования
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Верхняя часть | http.h |