Configurações do arquivo de log padrão para <logFile> de sites
Visão geral
O elemento <logFile>
do elemento <siteDefaults>
contém atributos que permitem configurar o registro em log padrão para um site no IIS 7 e posterior.
Por exemplo, você pode habilitar ou desabilitar o registro em log, configurar o formato do arquivo de log do IIS, especificar as categorias de informações a serem armazenadas no arquivo de log e alterar o diretório em que o arquivo de log está armazenado. Você também pode usar o elemento <logFile>
para controlar a frequência com que o IIS cria um novo arquivo de log com base no tamanho do arquivo de log ou no intervalo de tempo e no tamanho máximo (em bytes) que um arquivo de log pode ter.
Por padrão, o IIS 7 e posterior usa o formato de arquivo de log W3C (World Wide Web Consortium). Para alterar essa configuração, modifique o atributo logFormat para IIS, NCSA ou Custom.
Observação
O registro em log do ODBC é implementado como um módulo de registro em log personalizado no IIS 7 e posterior. Como resultado, habilitar e configurar o registro em log do ODBC no IIS 7 e posterior consiste em duas ações separadas:
- Definir os atributos de registro em log do ODBC no elemento
<odbcLogging>
. Esses atributos especificam o DSN de sistema, o nome da tabela, o nome de usuário e a senha para conexão ODBC. - Definir os atributos de registro em log personalizados corretos no elemento
<logFile>
. Esses atributos devem definir o formato de arquivo de log como "Personalizado" e a ID da classe de plug-in de log personalizada como "{FF16065B-DE82-11CF-BC0A-00AA006111E0}".
Para obter mais informações sobre o registro em log do ODBC, consulte o elemento <odbcLogging>
.
Para definir as categorias de informações que o IIS registra, edite o atributo logExtFileFlags. Os valores padrão são Date
, Time
, ClientIP
, UserName
, ServerIP
, Method
, UriStem
, UriQuery
, TimeTaken
, HttpStatus
, Win32Status
, ServerPort
, UserAgent
, HttpSubStatus
e Referer
.
Observação
Se o elemento <logFile>
estiver configurado na seção <siteDefaults>
e na seção <site>
de um site específico, a configuração na seção <site>
será usada para esse site.
O IIS 8.5 permite que você registre campos personalizados além do conjunto de logs padrão. O formato do arquivo de log deve ser W3C para adicionar campos personalizados. Para obter mais informações, consulte customFields
.
Compatibilidade
Versão | Observações |
---|---|
IIS 10.0 | O elemento <logFile> não foi modificado no IIS 10.0. |
IIS 8.5 | Adicionado o atributo flushByEntrycountW3CLog para especificar o número de eventos a serem armazenados no buffer antes de serem liberados para o arquivo de log. Adicionado o atributo logTargetW3C para especificar como os eventos do IIS registrados são processados. Adicionado o atributo maxLogLineLength para especificar o comprimento máximo de uma linha em um arquivo de log. Adicionado o elemento filho <customFields> . |
IIS 8.0 | O atributo logSiteId foi adicionado para especificar o conteúdo do campo -sitename, e o sinalizador referer foi adicionado ao valor padrão do atributo logExtFileFlags . |
IIS 7.5 | O elemento <logFile> não foi modificado no IIS 7.5. |
IIS 7.0 | O elemento <logFile> do elemento <siteDefaults> foi introduzido no IIS 7.0. |
IIS 6,0 | O elemento <logFile> substitui seções das propriedades de registro em log no objeto de metabase IIsWebService do IIS 6.0. |
Instalação
O elemento <logFile>
está incluído na instalação padrão do IIS 7 e posterior.
Instruções
Como editar as configurações do registro em log padrão de um servidor
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 o 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, clique no nome do servidor no qual deseja configurar o registro em log.
No painel Página Inicial, clique duas vezes em Registro em Log.
No painel Registro em Log, selecione o formato de arquivo de log na caixa Formato e, em seguida, digite o caminho para o diretório em que você armazena os arquivos de log na caixa Diretório ou clique em Procurar... para escolher o diretório no qual armazenar os arquivos de log.
Se você optar por usar o formato de arquivo de log W3C:
Como configurar o ETW ou o registro em log de arquivos para logs do W3C
Abra o Gerenciador dos Serviços de Informações da Internet (IIS):
Se você estiver usando 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.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).
No painel Conexões, expanda o nome do servidor.
Na página inicial do site, clique duas vezes em Registro em Log.
Na página inicial Registro em Log, em Destino do Evento de Log, selecione Somente arquivo de log, Somente evento ETW ou Arquivo de log e evento ETW.
Como configurar a liberação de um log do W3C por contagem de entradas
Abra o Gerenciador dos Serviços de Informações da Internet (IIS):
Se você estiver usando 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.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).
No painel Conexões, selecione o servidor e clique duas vezes em Editor de Configuração.
No Editor de Configuração, em Seção, expanda
system.applicationHost
e selecione sites.Expanda siteDefaults e logFile.
Para flushByEntryCountW3Clog, insira o número de eventos a serem armazenados no buffer antes de serem liberados para o arquivo de log.
No painel Ação, clique em Aplicar.
Como configurar o comprimento máximo da linha de log
Abra o Gerenciador dos Serviços de Informações da Internet (IIS):
Se você estiver usando 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.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).
No painel Conexões, expanda o servidor e clique duas vezes no Editor de Configuração.
No Editor de Configuração, em Seção, expanda
system.applicationHost
e selecione sites.Expanda siteDefaults e logFile.
Para maxLogLineLength, insira o número máximo de bytes em uma única linha de um arquivo de log.
No painel Ação, clique em Aplicar.
Configuração
Atributos
Atributo | Descrição | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
customLogPluginClsid |
Atributo de cadeia de caracteres opcional. Especifica a CLSID (ID da classe de objeto COM) ou IDs, em ordem de precedência, para módulos personalizados. |
||||||||||||||||||||||||||||||||||||||||||||||
directory |
Atributo de cadeia de caracteres opcional. Especifica o diretório de registro em log, no qual o arquivo de log e os arquivos de suporte relacionados ao registro em log são armazenados. O valor padrão é %SystemDrive%\inetpub\logs\LogFiles . |
||||||||||||||||||||||||||||||||||||||||||||||
enabled |
Atributo booliano opcional. Especifica se o registro em log está habilitado (true) ou desabilitado (false) para um site. Observação: os erros do ASP e do ODBC não são registrados nos arquivos de log do IIS. O valor padrão é true . |
||||||||||||||||||||||||||||||||||||||||||||||
flushByEntryCountW3CLog |
Atributo uint opcional. Especifica o número de eventos a serem armazenados no buffer antes de serem liberados para o arquivo de log. Um número menor fará com que os eventos sejam liberados mais rapidamente, ao custo do desempenho, como resultado de um maior número de operações de disco. Reduza esse valor para mais soluções de problemas em tempo real, aumente-o para o desempenho. Um valor de 0 especifica que a liberação ocorrerá no padrão máximo de 64k.O valor padrão é 0 . |
||||||||||||||||||||||||||||||||||||||||||||||
localTimeRollover |
Atributo booliano opcional. Especifica se um novo arquivo de log é criado com base na hora local ou no UTC (Tempo Universal Coordenado), que anteriormente era chamado de GMT (Horário do Meridiano de Greenwich). Quando false, um novo arquivo de log é criado com base no UTC. Observação: independentemente da configuração, o carimbo de data/hora de cada registro em log estendido do W3C é baseado em UTC. O valor padrão é false . |
||||||||||||||||||||||||||||||||||||||||||||||
logExtFileFlags |
Atributo flags opcional. Especifica as categorias de informações que são gravadas no arquivo de log (quando você usa o formato de arquivo de log estendido W3C) ou na fonte de dados ODBC durante eventos de registro em log para um site. O atributo logExtFileFlags pode ser um ou mais dos valores a seguir. Se você especificar mais de um valor, separe-os com uma vírgula (,). Os valores padrão são Date , Time , ClientIP , UserName , ServerIP , Method , UriStem , UriQuery , TimeTaken , HttpStatus , Win32Status , ServerPort , UserAgent , HttpSubStatus , Referer .
|
||||||||||||||||||||||||||||||||||||||||||||||
logFormat |
Atributo enum opcional. Especifica o formato do arquivo de log. O atributo logFormat pode ser um dos valores a seguir. O valor padrão é W3C .
|
||||||||||||||||||||||||||||||||||||||||||||||
logSiteId |
Atributo booliano opcional. Especifica que o campo s-sitename conterá o nome do site (false) ou a ID do site (true). Se o arquivo de log One por propriedade estiver definido como Site (o padrão pronto para uso), você não obterá a coluna s-sitename no arquivo de log por padrão, pois a propriedade de nome do arquivo de log conterá a ID do site. Se o arquivo de log One por propriedade for definido como Server , a coluna s-sitename será incluída no arquivo de log por padrão.O valor padrão é True , o que significa que o campo s-sitename contém a ID do site. Para registrar o nome do site em vez disso, defina logSiteID como False . |
||||||||||||||||||||||||||||||||||||||||||||||
logTargetW3C |
Atributo Flags opcional. Especifica se o IIS usará o ETW (Rastreamento de Eventos para Windows) e/ou o registro em log de arquivos para processar eventos do IIS registrados. O ETW fornece registro em log em tempo real e o uso de um provedor ETW e mecanismos de consulta padrão. O registro em log de arquivos armazena dados de evento em arquivos de texto que você pode analisar para acessar dados de registro em log. Quando o IIS usa arquivos de log, o HTTP.sys registra dados diretamente em arquivos de log de texto após a conclusão da transação. Ao usar o ETW, o HTTP.sys envia dados para o ETW usando o provedor iislogging, e o serviço LOGSVC gerencia os dados de log, incluindo consultar o ETW para obter dados, coletar dados diretamente de processos de trabalho e enviar os dados para um arquivo de log. O atributo logTargetW3C pode ter os possíveis valores a seguir. O valor padrão é File . Se File e ETW estão listados em logTargetW3C para os padrões de arquivo de log do servidor no applicationHost.config, isso equivale a selecionar Arquivo de log e evento ETW no painel Registro em Log do servidor no Gerenciador do IIS.
|
||||||||||||||||||||||||||||||||||||||||||||||
maxLogLineLength |
Atributo uint opcional. Especifica o comprimento máximo de uma linha em um arquivo de log. Isso permite limitar a quantidade de dados acumulados pelo registro em log e economizar em espaço em disco, especialmente quando você adiciona campos de registro em log personalizados. O intervalo é de 2 a 65.536. O valor padrão é 65536 . |
||||||||||||||||||||||||||||||||||||||||||||||
period |
Atributo enum opcional. Especifica a frequência com que o IIS cria um novo arquivo de log. O atributo period pode ser um dos valores possíveis a seguir. O valor padrão é Daily .
|
||||||||||||||||||||||||||||||||||||||||||||||
truncateSize |
Atributo int64 opcional. Especifica o tamanho máximo do arquivo de log (em bytes) após o qual um novo arquivo de log será criado. Esse valor só é aplicável quando MaxSize é escolhido para o atributo period. O tamanho mínimo do arquivo é 1.048.576 bytes. Se esse atributo for definido como um valor menor que 1.048.576 bytes, o valor padrão será implicitamente considerado como 1.048.576 bytes. O valor padrão é 20971520 . |
Elementos filho
Elemento | Descrição |
---|---|
customFields |
Elemento opcional. Especifica as configurações de campos personalizados padrão em um log do W3C. |
Exemplo de configuração
O exemplo de configuração a seguir especifica as opções de logFile
padrão.
<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>
Exemplo de código
Os exemplos de código a seguir configuram as opções de logFile
padrão para o 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
Observação
Defina o parâmetro commit como apphost
quando usar AppCmd.exe para definir essas configurações. Isso confirma as configurações 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 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()