Параметры файла журнала по умолчанию для logFile веб-сайтов <>

Обзор

Элемент <logFile> элемента <siteDefaults> содержит атрибуты, позволяющие настроить ведение журнала по умолчанию для сайта в IIS 7 и более поздних версиях.

Например, можно включить или отключить ведение журнала, настроить формат файла журнала IIS, указать категории сведений для хранения в файле журнала и изменить каталог, в котором хранится файл журнала. Кроме того, элемент можно использовать <logFile> для управления тем, как часто СЛУЖБЫ IIS создают новый файл журнала на основе размера файла журнала или интервала времени и максимального размера (в байтах), который может стать файлом журнала.

По умолчанию IIS 7 и более поздних версий использует формат файла журнала W3C. Этот параметр можно изменить, изменив атрибут logFormat на IIS, NCSA или Custom.

Замечание

Ведение журнала ODBC реализуется как пользовательский модуль ведения журнала в IIS 7 и более поздних версиях. В результате включение и настройка ведения журнала ODBC в IIS 7 и более поздних версиях состоит из двух отдельных действий:

  • Задание атрибутов ведения журнала ODBC в элементе <odbcLogging> . Эти атрибуты указывают имя источника данных системы (DSN), имя таблицы, имя пользователя и пароль для подключения ODBC.
  • Задание правильных настраиваемых атрибутов ведения журнала в <logFile> элементе. Эти атрибуты должны задать для формата файла журнала значение Custom, а пользовательский идентификатор подключаемого модуля журнала — "{FF16065B-DE82-11CF-BC0A-00AA00611E0}".

Дополнительные сведения о ведении журнала ODBC см. в элементе <odbcLogging> .

Вы можете определить категории сведений, которые службы IIS регистрируют, изменив атрибут logExtFileFlags . Значения по умолчанию: Date, ClientIPUserAgentHttpStatusWin32StatusTimeTakenServerPortHttpSubStatusTimeServerIPRefererUserNameMethodUriStemUriQueryи .

Замечание

<logFile> Если элемент настроен как в разделе, так <siteDefaults> и <site> в разделе для определенного сайта, конфигурация в <site> разделе используется для этого сайта.

IIS 8.5 позволяет регистрировать настраиваемые поля в дополнение к стандартному набору журналов. Формат файла журнала должен быть W3C для добавления настраиваемых полей. Дополнительные сведения см. в разделе customFields.

Compatibility

Версия Примечания.
IIS 10.0 Элемент <logFile> не был изменен в IIS 10.0.
IIS 8.5 Добавлен flushByEntrycountW3CLog атрибут, чтобы указать количество событий, которые будут храниться в буфере, прежде чем они удаляются в файл журнала. Добавлен logTargetW3C атрибут, чтобы указать способ обработки событий IIS, зарегистрированных в журнале. Добавлен maxLogLineLength атрибут, указывающий максимальную длину строки в файле журнала. Добавлен дочерний <customFields> элемент.
IIS 8.0 Атрибут logSiteId был добавлен, чтобы указать содержимое поля -sitename и referer флаг был добавлен в значение атрибута logExtFileFlags по умолчанию.
IIS 7.5 Элемент <logFile> не был изменен в IIS 7.5.
IIS 7.0 Элемент <logFile> элемента <siteDefaults> был представлен в IIS 7.0.
IIS 6.0 Элемент <logFile> заменяет разделы свойств ведения журнала в метабазе IIS 6.0 IIsWebService .

Настройка

Элемент <logFile> включен в установку IIS 7 и более поздних версий по умолчанию.

Как сделать

Изменение параметров ведения журнала по умолчанию для сервера

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер серверов, щелкните "Сервис" и выберите диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживайте клавишу Windows , нажимайте букву X, а затем нажмите кнопку "Панель управления".
      • Щелкните "Администрирование" и дважды щелкните диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку "Пуск", наведите указатель на администрирование и выберите диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку "Пуск" и нажмите кнопку "Панель управления".
      • Дважды щелкните " Администрирование" и дважды щелкните диспетчер служб IIS.
  2. В области "Подключения" щелкните имя сервера, на котором требуется настроить ведение журнала.

  3. В области "Главная" дважды щелкните "Ведение журнала".
    Снимок экрана: панель

  4. В области ведения журнала выберите формат файла журнала в поле "Формат ", а затем введите путь к каталогу, в котором хранятся файлы журнала в поле "Каталог " или нажмите кнопку "Обзор", чтобы выбрать каталог, в котором хранятся файлы журнала.
    Снимок экрана: панель ведения журнала. W 3 C выбран для формата.

  5. Если вы решили использовать формат файла журнала W3C:

    • Щелкните "Выбрать поля" , чтобы выбрать типы сведений для журнала.
    • В диалоговом окне "Поля ведения журнала W3C " установите флажки для параметров, которые вы хотите записать, снимите флажки для параметров, которые не нужно регистрировать, а затем нажмите кнопку "ОК".
      Снимок экрана: диалоговое окно

Настройка ведения журнала etW или файлов для журналов W3C

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 R2:

      • На панели задач щелкните диспетчер серверов, щелкните "Сервис" и выберите диспетчер служб IIS.
    • Если вы используете Windows 8.1:

      • Удерживайте клавишу Windows , нажимайте букву X, а затем нажмите кнопку "Панель управления".
      • Щелкните "Администрирование" и дважды щелкните диспетчер служб IIS.
  2. В области "Подключения" разверните имя сервера.

  3. На домашней панели сайта дважды щелкните "Ведение журнала".

  4. На домашней странице ведения журнала для назначения событий журнала выберите только файл журнала, только событие ETW или файл журнала и событие ETW.

    Снимок экрана: панель ведения журнала. Для назначения события журнала выбран только файл журнала.

Настройка очистки журнала W3C по количеству записей

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 R2:

      • На панели задач щелкните диспетчер серверов, щелкните "Сервис" и выберите диспетчер служб IIS.
    • Если вы используете Windows 8.1:

      • Удерживайте клавишу Windows , нажимайте букву X, а затем нажмите кнопку "Панель управления".
      • Щелкните "Администрирование" и дважды щелкните диспетчер служб IIS.
  2. В области "Подключения" выберите сервер и дважды щелкните редактор конфигурации.

  3. В редакторе конфигурации для раздела разверните system.applicationHostузел и выберите сайты.

  4. Разверните siteDefaults и разверните logFile.

  5. Для flushByEntryCountW3Clog введите количество событий, которые необходимо хранить в буфере, прежде чем они будут удалены в файл журнала.

  6. В области действий нажмите кнопку "Применить".

    Снимок экрана: окно редактора коллекции. В области

Настройка максимальной длины строки журнала

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 R2:

      • На панели задач щелкните диспетчер серверов, щелкните "Сервис" и выберите диспетчер служб IIS.
    • Если вы используете Windows 8.1:

      • Удерживайте клавишу Windows , нажимайте букву X, а затем нажмите кнопку "Панель управления".
      • Щелкните "Администрирование" и дважды щелкните диспетчер служб IIS.
  2. В области "Подключения" разверните сервер и дважды щелкните редактор конфигурации.

  3. В редакторе конфигурации для раздела разверните system.applicationHostузел и выберите сайты.

  4. Разверните siteDefaults и разверните logFile.

  5. В поле maxLogLineLength введите максимальное количество байтов в одной строке файла журнала.

  6. В области действий нажмите кнопку "Применить".

    Снимок экрана: окно редактора коллекции. В области свойств выбрана максимальная длина строки журнала.

Конфигурация

Attributes

Свойство Description
customLogPluginClsid Необязательный строковый атрибут.

Указывает идентификатор класса COM (CLSID) или идентификаторы в порядке приоритета для пользовательских модулей.
directory Необязательный строковый атрибут.

Указывает каталог ведения журнала, в котором хранятся файлы поддержки журнала и ведения журнала.

Значение по умолчанию — %SystemDrive%\inetpub\logs\LogFiles.
enabled Дополнительный логический атрибут.

Указывает, включен ли ведение журнала (true) или отключено (false) для сайта.

Примечание: Ошибки ASP и ODBC не регистрируются в файлах журнала IIS.

Значение по умолчанию — true.
flushByEntryCountW3CLog Необязательный атрибут uint.

Указывает количество событий, хранящихся в буфере, прежде чем они будут удалены в файл журнала. Более низкое число приведет к более быстрому очистке событий за счет повышения производительности в результате большего количества операций на диске. Уменьшите это значение для устранения неполадок в режиме реального времени, увеличьте его для производительности. Значение 0 указывает, что очистка будет выполняться по умолчанию не более 64 кб.

Значение по умолчанию — 0.
localTimeRollover Дополнительный логический атрибут.

Указывает, создается ли новый файл журнала на основе локального времени или согласованного универсального времени (UTC), который ранее назывался "Среднее время Гринвича" (GMT). Если значение false, создается новый файл журнала на основе UTC.

Примечание: Независимо от параметра, метка времени для каждой записи журнала расширенного ведения журнала W3C основана на формате UTC.

Значение по умолчанию — false.
logExtFileFlags Необязательный атрибут флагов.

Указывает категории сведений, записанных в файл журнала (при использовании формата расширенного файла журнала W3C) или источника данных ODBC во время событий ведения журнала для сайта. Атрибут logExtFileFlags может быть одним или несколькими из следующих значений. Если указать несколько значений, разделите их запятыми (,).

Значения по умолчанию: Date, ClientIPServerPort, UserAgentRefererHttpSubStatusTimeUserNameServerIPMethodUriStemUriQueryTimeTakenHttpStatusWin32Status

Примечание: Начиная с обновления BytesRecv Windows за февраль 2026 г. и BytesSent включены по умолчанию в атрибут logExtFileFlags в Windows 11 и Windows Server 2019 и более поздних версий.

Ценность Description
BytesRecv Зайдите в журнал количество байтов, полученных сервером.
BytesSent Зайдите в журнал количество байтов, отправленных сервером.
ClientIP Зайдите в журнал IP-адрес клиента, который сделал запрос.
ComputerName Зайдите в журнал имя сервера, на котором была создана запись файла журнала.
Cookie Зайдите в журнал содержимое полученных файлов cookie, если какое-либо содержимое существует.
Date Зайдите в журнал дату, в которой произошло действие.
Host Зайдите в журнал имя заголовка узла, если есть один.
HttpStatus Зайдите в журнал кода состояния HTTP.
HttpSubStatus Зайдите в журнал код вложенного состояния ошибки HTTP. Например, для ошибки HTTP 500.18 код состояния равен 500, а код вложенного состояния — 18.
Method Зайдите в журнал запрошенного действия. Например, GET, POST и т. д.
ProtocolVersion Зайдите в журнал версию протокола, используемую клиентом.
Referer Зайдите на сайт, который последний раз посетил пользователь. Этот сайт предоставил ссылку на текущий сайт.
ServerIP Зайдите в журнал IP-адрес сервера, на котором была создана запись файла журнала.
ServerPort Зайдите в журнал номер порта сервера, настроенный для сайта.
SiteName Зайдите в журнал имя и номер экземпляра службы Интернета для сайта.
Time Зайдите в журнал времени в формате UTC, в котором произошло действие.
TimeTaken Заведите журнал времени, затраченного на завершение запроса. Время записывается в миллисекундах.

Примечание. Метка времени запроса клиента инициализируется, когда HTTP.sys получает первый байт, но прежде чем HTTP.sys начнет анализировать запрос. Метка времени запроса клиента останавливается при завершении последней отправки IIS. Время не отражает время в сети. Первый запрос на сайт показывает немного больше времени, чем другие аналогичные запросы, так как HTTP.sys открывает файл журнала, содержащий первый запрос.
UriQuery Зайдите в журнал запроса, если таковой есть, что клиент пытается выполнить. Запрос универсального идентификатора ресурса (URI) необходим только для динамических страниц и обычно состоит из параметров, передаваемых URL-адресу.
UriStem Зайдите в журнал сведения о стволовых объектах универсального идентификатора ресурса (URI), который является целью действия. Например, Default.htm.
UserAgent Зайдите в журнал тип браузера, используемый клиентом.
UserName Зайдите в журнал имя прошедшего проверку подлинности пользователя, который обращается к серверу. Анонимные пользователи указываются дефисом.
Win32Status Зайдите в журнал кода состояния Windows.
logFormat Необязательный атрибут перечисления.

Задает формат файла журнала. Атрибут logFormat может быть одним из следующих значений.

Значение по умолчанию — W3C.
Ценность Description
Custom Используйте настраиваемый формат файла журнала для пользовательского модуля ведения журнала.

Числовое значение равно 3.
IIS Используйте формат файла журнала Microsoft IIS для записи сведений о сайте. Этот формат обрабатывается HTTP.sysи является фиксированным текстовым форматом ASCII, что означает, что невозможно настроить поля, зарегистрированные в журнале. Поля разделяются запятыми, а время записывается как локальное время. Ниже приведен список полей, которые регистрируются при использовании формата файла журнала IIS:
  • IP-адрес клиента
  • Имя пользователя
  • Дата
  • Время
  • Служба и экземпляр
  • Имя сервера
  • IP-адрес сервера
  • Время, затрачено
  • Отправленные клиентом байты
  • Отправленные байты сервера
  • Код состояния службы (значение 200 указывает, что запрос выполнен успешно.)
  • Код состояния Windows (значение 0 указывает, что запрос выполнен успешно.)
  • Тип запроса
  • Цель операции
  • Параметры (параметры, передаваемые в скрипт)
Не все поля будут содержать данные. Если поле не содержит данных, дефис (-) отображается в качестве заполнителя. Если поле содержит непечатаемый символ, HTTP.sys заменяет его знаком плюса (+), чтобы сохранить формат файла журнала.

Числовое значение равно 0.
NCSA Используйте формат общего файла журнала Национального центра суперкомпьютирования приложений (NCSA) для регистрации сведений о сайте. Этот формат обрабатывается HTTP.sysи является фиксированным текстовым форматом ASCII, что означает, что невозможно настроить поля, зарегистрированные в журнале. Поля разделены пробелами, а время записывается как локальное время с смещением "Координированное универсальное время (UTC). Ниже приведен список полей, которые регистрируются при использовании формата общего файла журнала NCSA:
  • Удаленный адрес узла
  • Имя удаленного журнала (это значение всегда является дефисом.)
  • Имя пользователя
  • Смещение даты, времени и времени в формате UTC
  • Версия запроса и протокола
  • Код состояния службы (значение 200 указывает, что запрос выполнен успешно.)
  • Отправленные байты
Не все поля будут содержать данные. Если поле не содержит данных, дефис (-) отображается в качестве заполнителя. Если поле содержит непечатаемый символ, HTTP.sys заменяет его знаком плюса (+), чтобы сохранить формат файла журнала.

Числовое значение равно 1.
W3C Используйте формат файла расширенного журнала W3C для записи сведений о сайте. Этот формат обрабатывается HTTP.sysи является настраиваемым текстовым форматом ASCII, что означает, что вы указываете поля, зарегистрированные в журнале. Укажите поля, которые регистрируются в атрибуте logExtFileFlags . Поля разделены пробелами, а время записывается в формате UTC.

Числовое значение равно 2.
logSiteId Дополнительный логический атрибут.

Указывает, что поле имени сайта будет содержать имя сайта (false) или идентификатор сайта (true). Если для каждого свойства задано Site значение "Один файл журнала" (по умолчанию), столбец s-sitename в файле журнала по умолчанию не будет отображаться, так как свойство имени файла журнала будет содержать идентификатор сайта. Если для каждого свойства задан Serverодин файл журнала, столбец имени сайта по умолчанию будет включен в файл журнала.

Значение по умолчанию — это Trueозначает, что поле имени сайта содержит идентификатор сайта. Чтобы регистрировать имя сайта, задайте для logSiteID значение False.
logTargetW3C Необязательный атрибут Flags.

Указывает, будет ли СЛУЖБА IIS использовать трассировку событий для Windows (ETW) и (или) ведение журнала файлов для обработки зарегистрированных событий IIS. ETW обеспечивает ведение журнала в режиме реального времени и использование поставщика ETW и стандартных механизмов запроса. Ведение журнала файлов сохраняет данные событий в текстовых файлах, которые можно проанализировать для доступа к данным журнала.

Если СЛУЖБА IIS использует файлы журналов, HTTP.sys записывает данные непосредственно в текстовые файлы журнала после завершения транзакции. При использовании ETW HTTP.sys отправляет данные в ETW с помощью поставщика iislogging, а служба LOGSVC управляет данными журнала, включая запросы etW для данных, сбор данных непосредственно из рабочих процессов и отправку данных в файл журнала.

Атрибут logTargetW3C может иметь следующие возможные значения. Значение по умолчанию — File. File Если файл журнала сервера по умолчанию используется logTargetW3C для обоих файлов ETW журналов в applicationHost.config, то это эквивалентно выбору файла журнала и события ETW на панели ведения журнала сервера в диспетчере IIS.
Ценность Description
File Данные событий IIS будут храниться в текстовом файле журнала. Чтобы обработать данные события, необходимо проанализировать текстовый файл журнала. Текстовые файлы журнала занимают время для обработки и очистки, поэтому вы не сможете обрабатывать данные события в режиме реального времени.

Числовое значение равно 1.
ETW Вместо ведения журнала данных непосредственно в текстовые файлы СЛУЖБЫ IIS будут отправлять данные журнала в трассировку событий для Windows, универсальный механизм событий, встроенный в Windows. Вы можете управлять зарегистрированными данными с помощью стандартных средств запросов, таких как анализатор сообщений или пользовательские средства. EtW обрабатывает зарегистрированные данные в режиме реального времени и позволяет фильтровать и просматривать данные, а также включать или отключать ведение журнала динамически. ETW также добавляет подробные сведения в данные о событиях, предоставляя данные, к которым HTTP.sys не имеет доступа. Дополнительные сведения см. в разделе "Трассировка событий".

Числовое значение равно 2.
maxLogLineLength Необязательный атрибут uint.

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

Диапазон составляет от 2 до 65 536. Значение по умолчанию — 65536.
period Необязательный атрибут перечисления.

Указывает, как часто СЛУЖБЫ IIS создают новый файл журнала. Атрибут точки может быть одним из следующих возможных значений.

Значение по умолчанию — Daily.
Ценность Description
Daily Создайте новый файл журнала ежедневно.

Числовое значение равно 1.
Hourly Создайте новый файл журнала почасово.

Числовое значение равно 4.
MaxSize Создайте файл журнала при достижении максимального размера. Максимальный размер указывается в атрибуте truncateSize.

Числовое значение равно 0.
Monthly Создание файла журнала ежемесячно.

Числовое значение равно 3.
Weekly Создайте новый файл журнала еженедельно.

Числовое значение равно 2.
truncateSize Необязательный атрибут int64.

Задает максимальный размер файла журнала (в байтах), после которого создается новый файл журнала. Это значение применимо только при выборе MaxSize для атрибута периода. Минимальный размер файла составляет 1 048 576 байт. Если этот атрибут имеет значение меньше 1 048 576 байт, значение по умолчанию неявно предполагается как 1 048 576 байт.

Значение по умолчанию — 20971520.

Дочерние элементы

Элемент Description
customFields Необязательный элемент.

Задает параметры конфигурации для настраиваемых полей по умолчанию в журнале W3C.

Пример конфигурации

В следующем примере конфигурации указаны параметры по умолчанию logFile .

<system.applicationHost>
   <sites>
      <siteDefaults>
         <logFile logFormat="W3C"
            directory="%SystemDrive%\inetpub\logs\LogFiles"
            enabled="true">
            <customFields>
               <clear/>
               <add logFieldName="ContosoField" sourceName="ContosoSource"
                  sourceType="ServerVariable" />
            </customFields>
         </logFile>
      </siteDefaults>
   </sites>
</system.applicationHost>

Пример кода

Следующие примеры кода настраивают параметры по умолчанию logFile для IIS 7.

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.logFile.enabled:"True" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.logFile.logFormat:"W3C" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.logFile.directory:"%SystemDrive%\inetpub\logs\LogFiles" /commit:apphost

Замечание

При использовании AppCmd.exe для настройки этих параметров необходимо задать параметр apphost. При этом параметры конфигурации фиксируются в соответствующем разделе расположения в файле ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection sitesSection = config.GetSection("system.applicationHost/sites");
         ConfigurationElement siteDefaultsElement = sitesSection.GetChildElement("siteDefaults");

         ConfigurationElement logFileElement = siteDefaultsElement.GetChildElement("logFile");
         logFileElement["logFormat"] = @"W3C";
         logFileElement["directory"] = @"%SystemDrive%\inetpub\logs\LogFiles";
         logFileElement["enabled"] = true;

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim sitesSection As ConfigurationSection = config.GetSection("system.applicationHost/sites")
      Dim siteDefaultsElement As ConfigurationElement = sitesSection.GetChildElement("siteDefaults")

      Dim logFileElement As ConfigurationElement = siteDefaultsElement.GetChildElement("logFile")
      logFileElement("logFormat") = "W3C"
      logFileElement("directory") = "%SystemDrive%\inetpub\logs\LogFiles"
      logFileElement("enabled") = True

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST");
var siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults");

var logFileElement = siteDefaultsElement.ChildElements.Item("logFile");
logFileElement.Properties.Item("logFormat").Value = "W3C";
logFileElement.Properties.Item("directory").Value = "%SystemDrive%\\inetpub\\logs\\LogFiles";
logFileElement.Properties.Item("enabled").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST")
Set siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults")

Set logFileElement = siteDefaultsElement.ChildElements.Item("logFile")
logFileElement.Properties.Item("logFormat").Value = "W3C"
logFileElement.Properties.Item("directory").Value = "%SystemDrive%\inetpub\logs\LogFiles"
logFileElement.Properties.Item("enabled").Value = True

adminManager.CommitChanges()