Compartilhar via


Registro em log HTTP <httpLogging>

Visão geral

O elemento <httpLogging> permite que você configure o IIS para gerar entradas de log apenas para solicitações bem-sucedidas, solicitações com falha ou ambas. Depois de configurar o registro em log para cada site no nível do servidor, você poderá usar esse elemento para habilitar o registro em log seletivo para URLs individuais. Por padrão, o registro em log HTTP está habilitado para todas as solicitações no IIS (Serviços de Informações da Internet) 7.

Você pode exibir o arquivo de log de um site a qualquer momento para ver quais solicitações estão falhando e quais estão sendo bem-sucedidas. Quando você não quiser mais que o IIS registre determinadas solicitações para um site, desabilite o registro em log para esse site.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <httpLogging> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <httpLogging> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <httpLogging> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <httpLogging> não foi modificado no IIS 7.5.
IIS 7.0 O elemento <httpLogging> foi introduzido no IIS 7.0.
IIS 6,0 O elemento <httpLogging> e o elemento <logFile> substituem as propriedades de registro em log no objeto de metabase IIsWebService do IIS 6.0.

Instalação

O elemento <httpLogging> está incluído na instalação padrão do IIS 7.

Instruções

Como habilitar o registro em log HTTP para um site ou aplicativo

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, expanda o nome do servidor, expanda Sites e navegue até o site ou aplicativo para o qual você deseja configurar o log HTTP.

  3. No painel Página Inicial, clique duas vezes em Registro em Log.

  4. No painel Ações, clique em Habilitar para habilitar o registro em log.
    Screenshot of the Logging pane. The text Use this feature to configure how I I S logs request server is shown.

  5. Selecione o formato de arquivo de log que você deseja usar para seu site ou aplicativo na lista suspensa Formatar e, se quiser alterar o local padrão em que o IIS armazena arquivos de log, digite o caminho no qual deseja armazenar os arquivos de log para o site ou aplicativo na caixa Diretório.

  6. (Opcional) Se você selecionou W3C na lista suspensa Formatar na etapa 5, clique em Selecionar Campos.

  7. (Opcional) Na caixa de diálogo Campos de Registro em Log do W3C, selecione os campos do W3C que você deseja registrar, desmarque todos os campos do W3C que você não deseja registrar e clique em OK.
    Screenshot of the W three C Logging Fields dialog box. The checkboxes for Date, Time, Client I P Address, User Name, Service Name and Server I P Address are checked. Service Name is highlighted.

  8. No painel Ações, clique em Aplicar.
    Screenshot of the Actions pane. The One log file box is shown.

Configuração

Você pode configurar o elemento <httpLogging> no nível do servidor no arquivo ApplicationHost.config e no nível do site, aplicativo ou URL no arquivo Web.config apropriado.

Atributos

Atributo Descrição
dontLog Atributo booliano opcional.

Especifica se o registro em log HTTP está habilitado para solicitações bem-sucedidas. Uma solicitação será considerada bem-sucedida se o código de status for menor que 400.

O valor padrão é false.
selectiveLogging Atributo de enumeração opcional.

Especifica quais tipos de solicitações devem ser registradas em log.

O atributo selectiveLogging pode ser um dos valores possíveis a seguir.

O valor padrão é LogAll.
Valor Descrição
LogAll Registra todas as solicitações.

O valor numérico é 0.
LogSuccessful Registra somente solicitações com êxito. O intervalo de códigos de status HTTP para solicitações bem-sucedidas é 100-399.

O valor numérico é 1.
LogError Registra somente solicitações sem êxito. O intervalo de códigos de status HTTP para solicitações sem êxito é 400-999.

O valor numérico é 2.

Elementos filho

Nenhum.

Exemplo de configuração

O exemplo de configuração a seguir, quando incluído em um arquivo Web.config para um site ou aplicativo, configura o registro em log HTTP e especifica que o IIS deve apenas registrar solicitações que geram erros.

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

Exemplo de código

Os exemplos a seguir habilitam o registro em log HTTP para um site chamado Contoso e especificam que o IIS não deve registrar nenhuma solicitação em log.

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

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo 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()