Поделиться через


структура 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 значений :

Значение Значение
HTTP_LOGGING_FLAG_LOCAL_TIME_ROLLOVER
Изменяет время смены файла журнала на местное время. По умолчанию смена файлов журнала основана на GMT.
HTTP_LOGGING_FLAG_USE_UTF8_CONVERSION
По умолчанию поля ведения журнала Юникода преобразуются в многобайтные с помощью системной локальной кодовой страницы. Если этот флаг установлен, вместо него используется преобразование UTF8.
HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY
Флаг "Только ошибки журнала" позволяет ведения журнала только ошибок. По умолчанию регистрируются как ошибки, так и успешные запросы.

Флаги HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY и HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY используются для выборочного ведения журнала. Одновременно можно задать только один из этих флагов; они являются взаимоисключающими.

HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY
Флаг log success only (Только успешное ведение журнала) позволяет вести журнал только успешных запросов. По умолчанию регистрируются как ошибки, так и успешные запросы.

Флаги HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY и HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY используются для выборочного ведения журнала. Одновременно можно задать только один из этих флагов; они являются взаимоисключающими.

SoftwareName

Необязательная строка имени программного обеспечения, используемая в журнале типов W3C. Это имя не используется для других типов ведения журнала. Если этот параметр имеет значение NULL, API HTTP-сервера регистрирует строку по умолчанию.

SoftwareNameLength

Длина (в байтах) имени программного обеспечения. Длина не может превышать MAX_PATH.

Если элемент SoftwareName имеет значение NULL, эта длина должна быть нулевой.

DirectoryNameLength

Длина (в байтах) имени каталога. Длина не может превышать 424 байта.

DirectoryName

Каталог ведения журнала, в котором создаются файлы журнала. Строка каталога должна быть полным путем, включая букву диска.

Приложения могут использовать UNC-путь к удаленному компьютеру, чтобы включить ведение журнала UNC.

Format

Член перечисления HTTP_LOGGING_TYPE , указывающий один из следующих форматов файлов журнала.

Формат Значение
HttpLoggingTypeW3C
Формат журнала — расширенное ведение журнала в стиле W3C. С помощью этого формата приложение может выбрать сочетание полей журнала для ведения журнала. Если ведение журнала W3C задано для группы URL-адресов, ведение журнала аналогично ведению журнала сайта 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-адресов в сеансе сервера, регистрируются в одном централизованном файле журнала. Параметры конфигурации для файла журнала передаются в структуре 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

См. также раздел

Структуры API HTTP-сервера версии 2.0

Константы HTTP_LOGGING_FLAG_

HTTP_LOGGING_ROLLOVER_TYPE

HTTP_LOGGING_TYPE

Константы HTTP_LOG_FIELD_

HTTP_SERVER_PROPERTY

HttpCloseRequestQueue

HttpCreateRequestQueue

HttpSetRequestQueueProperty

HttpShutdownRequestQueue