HttpLogging для ведения журнала <HTTP>

Общие сведения

Элемент <httpLogging> позволяет настроить IIS для создания записей журнала только для успешных запросов, неудачных запросов или и того, и другого. После настройки ведения журнала для каждого веб-сайта на уровне сервера можно использовать этот элемент для включения выборочного ведения журнала для отдельных URL-адресов. По умолчанию ведение журнала HTTP включено для всех запросов в службах IIS 7.

Вы можете в любое время просмотреть файл журнала для сайта, чтобы узнать, какие запросы завершаются сбоем, а какие — успешными. Если вы больше не хотите, чтобы службы IIS регистрируют определенные запросы для сайта, отключите ведение журнала для этого сайта.

Совместимость

Версия Примечания
IIS 10.0 Элемент <httpLogging> не был изменен в IIS 10.0.
IIS 8,5 Элемент <httpLogging> не был изменен в IIS 8.5.
IIS 8,0 Элемент <httpLogging> не был изменен в IIS 8.0.
IIS 7,5 Элемент <httpLogging> не был изменен в IIS 7.5.
IIS 7.0 Элемент <httpLogging> появился в IIS 7.0.
IIS 6,0 Элемент <httpLogging> и <logFile> элемент заменяют свойства ведения журнала объекта метабазы IIsWebService IIS 6.0.

Установка

Элемент <httpLogging> включен в установку iis 7 по умолчанию.

Инструкции

Включение ведения журнала HTTP для сайта или приложения

  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. В области Подключения разверните имя сервера, сайты, а затем перейдите к веб-сайту или приложению, для которого требуется настроить ведение журнала HTTP.

  3. На панели Главная дважды щелкните Ведение журнала.

  4. В области Действия нажмите кнопку Включить , чтобы включить ведение журнала.
    Снимок экрана: область ведения журнала. Отображается текст Использование этой функции для настройки сервера запросов журналов I I S.

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

  6. (Необязательно) Если вы выбрали W3C в раскрывающемся списке Формат на шаге 5, нажмите кнопку Выбрать поля.

  7. (Необязательно) В диалоговом окне Поля ведения журнала W3C выберите нужные поля W3C, очистите все поля W3C, которые не хотите регистрировать, и нажмите кнопку ОК.
    Снимок экрана: диалоговое окно

  8. В области Действия нажмите кнопку Применить.
    Снимок экрана: панель

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

Элемент можно настроить <httpLogging> на уровне сервера в файле ApplicationHost.config и на уровне сайта, приложения или URL-адреса в соответствующем Web.config файле.

Атрибуты

Атрибут Описание
dontLog Дополнительный логический атрибут.

Указывает, включено ли ведение журнала HTTP для успешных запросов. Запрос считается успешным, если его код состояния меньше 400.

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

Указывает тип запросов для ведения журнала.

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

Значение по умолчанию — LogAll.
Значение Описание
LogAll Регистрирует все запросы.

Числовое значение равно 0.
LogSuccessful Регистрирует только успешные запросы. Диапазон кодов состояния HTTP для успешных запросов — 100–399.

Числовое значение равно 1.
LogError Регистрирует только неудачные запросы. Диапазон кодов состояния HTTP для неудачных запросов — 400–999.

Числовое значение равно 2.

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

Отсутствует.

Образец конфигурации

Следующий пример конфигурации, включенный в файл Web.config для сайта или приложения, настраивает ведение журнала HTTP и указывает, что СЛУЖБЫ IIS должны регистрировать только запросы, которые вызывают ошибки.

<configuration>
   <system.webServer>
      <httpLogging dontLog="false" selectiveLogging="LogError" />
   </system.webServer>
<configuration>

Пример кода

В следующих примерах включается ведение журнала HTTP для веб-сайта Contoso и указывается, что IIS не должны регистрировать запросы.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/httpLogging /dontLog:"True" /commit:apphost

appcmd.exe set config "Contoso" -section:system.webServer/httpLogging /selectiveLogging:"LogAll" /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 httpLoggingSection = config.GetSection("system.webServer/httpLogging", "Contoso");
         httpLoggingSection["selectiveLogging"] = @"LogAll";
         httpLoggingSection["dontLog"] = 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 httpLoggingSection As ConfigurationSection = config.GetSection("system.webServer/httpLogging", "Contoso")
      httpLoggingSection("selectiveLogging") = "LogAll"
      httpLoggingSection("dontLog") = True
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var httpLoggingSection = adminManager.GetAdminSection("system.webServer/httpLogging", "MACHINE/WEBROOT/APPHOST/Contoso");
httpLoggingSection.Properties.Item("selectiveLogging").Value = "LogAll";
httpLoggingSection.Properties.Item("dontLog").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set httpLoggingSection = adminManager.GetAdminSection("system.webServer/httpLogging", "MACHINE/WEBROOT/APPHOST/Contoso")
httpLoggingSection.Properties.Item("selectiveLogging").Value = "LogAll"
httpLoggingSection.Properties.Item("dontLog").Value = True

adminManager.CommitChanges()