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 для сайта или приложения
Откройте диспетчер служб 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.
В области Подключения разверните имя сервера, сайты, а затем перейдите к веб-сайту или приложению, для которого требуется настроить ведение журнала HTTP.
На панели Главная дважды щелкните Ведение журнала.
В области Действия нажмите кнопку Включить , чтобы включить ведение журнала.
Выберите формат файла журнала, который вы хотите использовать для сайта или приложения, в раскрывающемся списке Формат и, если вы хотите изменить расположение по умолчанию, в котором IIS хранит файлы журналов, введите путь к файлам журнала для сайта или приложения в поле Каталог .
(Необязательно) Если вы выбрали W3C в раскрывающемся списке Формат на шаге 5, нажмите кнопку Выбрать поля.
(Необязательно) В диалоговом окне Поля ведения журнала W3C выберите нужные поля W3C, очистите все поля W3C, которые не хотите регистрировать, и нажмите кнопку ОК.
Конфигурация
Элемент можно настроить <httpLogging>
на уровне сервера в файле ApplicationHost.config и на уровне сайта, приложения или URL-адреса в соответствующем Web.config файле.
Атрибуты
Атрибут | Описание | ||||||||
---|---|---|---|---|---|---|---|---|---|
dontLog |
Дополнительный логический атрибут. Указывает, включено ли ведение журнала HTTP для успешных запросов. Запрос считается успешным, если его код состояния меньше 400. Значение по умолчанию — false . |
||||||||
selectiveLogging |
Необязательный атрибут перечисления. Указывает тип запросов для ведения журнала. Атрибут selectiveLogging может быть одним из следующих возможных значений. Значение по умолчанию — LogAll .
|
Дочерние элементы
Отсутствует.
Образец конфигурации
Следующий пример конфигурации, включенный в файл 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()