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
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).
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.
No painel Página Inicial, clique duas vezes em Registro em Log.
No painel Ações, clique em Habilitar para habilitar o registro em log.
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.
(Opcional) Se você selecionou W3C na lista suspensa Formatar na etapa 5, clique em Selecionar Campos.
(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.
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 .
|
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()