HTTP Logging <httpLogging>
Panoramica
L'elemento <httpLogging>
consente di configurare IIS per generare voci di log solo per richieste riuscite, richieste non riuscite o entrambe. Dopo aver configurato la registrazione per ogni sito Web a livello di server, è possibile usare questo elemento per abilitare la registrazione selettiva per singoli URL. Per impostazione predefinita, la registrazione HTTP è abilitata per tutte le richieste in Internet Information Services (IIS) 7.
È possibile visualizzare il file di log per un sito in qualsiasi momento per verificare quali richieste hanno esito negativo e quali richieste hanno esito positivo. Quando non si vuole più che IIS registri determinate richieste per un sito, disabilitare la registrazione per tale sito.
Compatibilità
Versione | Note |
---|---|
IIS 10.0 | L'elemento <httpLogging> non è stato modificato in IIS 10.0. |
IIS 8,5 | L'elemento <httpLogging> non è stato modificato in IIS 8.5. |
IIS 8,0 | L'elemento <httpLogging> non è stato modificato in IIS 8.0. |
IIS 7,5 | L'elemento <httpLogging> non è stato modificato in IIS 7.5. |
IIS 7.0 | L'elemento <httpLogging> è stato introdotto in IIS 7.0. |
IIS 6.0 | L'elemento <httpLogging> e l'elemento sostituiscono le proprietà di registrazione nell'oggetto <logFile> metabase IIsWebService IIS 6.0. |
Configurazione
L'elemento <httpLogging>
è incluso nell'installazione predefinita di IIS 7.
Procedure
Come abilitare la registrazione HTTP per un sito o un'applicazione
Aprire Gestione Internet Information Services (IIS):
Se si usa Windows Server 2012 o Windows Server 2012 R2:
- Nella barra delle applicazioni fare clic su Server Manager, scegliere Strumenti e quindi fare clic su Gestione Internet Information Services (IIS).
Se si usa Windows 8 o Windows 8.1:
- Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
- Fare clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
Se si usa Windows Server 2008 o Windows Server 2008 R2:
- Nella barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Gestione Internet Information Services (IIS).
Se si usa Windows Vista o Windows 7:
- Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
- Fare doppio clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
Nel riquadro Connessioni espandere il nome del server, espandere Siti e quindi passare al sito Web o all'applicazione per cui si vuole configurare la registrazione HTTP.
Nel riquadro Home fare doppio clic su Registrazione.
Nel riquadro Azioni fare clic su Abilita per abilitare la registrazione.
Selezionare il formato del file di log che si vuole usare per il sito o l'applicazione nell'elenco a discesa Formato e, se si vuole modificare il percorso predefinito in cui IIS archivia i file di log, digitare il percorso in cui si desidera archiviare i file di log per il sito o l'applicazione nella casella Directory .
(Facoltativo) Se è stato selezionato W3C nell'elenco a discesa Formato nel passaggio 5, fare clic su Seleziona campi.
(Facoltativo) Nella finestra di dialogo Campi di registrazione W3C selezionare i campi W3C che si desidera registrare, cancellare i campi W3C che non si desidera registrare e quindi fare clic su OK.
Configurazione
È possibile configurare l'elemento <httpLogging>
a livello di server nel file ApplicationHost.config e a livello di sito, applicazione o URL nel file di Web.config appropriato.
Attributi
Attributo | Descrizione | ||||||||
---|---|---|---|---|---|---|---|---|---|
dontLog |
Attributo booleano facoltativo. Specifica se la registrazione HTTP è abilitata per le richieste riuscite. Una richiesta viene considerata riuscita se il codice di stato è minore di 400. Il valore predefinito è false . |
||||||||
selectiveLogging |
Attributo enumerazione facoltativo. Specifica il tipo di richieste da registrare. L'attributo selectiveLogging può essere uno dei valori possibili seguenti. Il valore predefinito è LogAll .
|
Elementi figlio
Nessuno.
Esempio di configurazione
L'esempio di configurazione seguente, quando incluso in un file di Web.config per un sito o un'applicazione, configura la registrazione HTTP e specifica che IIS deve registrare solo le richieste di log che generano errori.
<configuration>
<system.webServer>
<httpLogging dontLog="false" selectiveLogging="LogError" />
</system.webServer>
<configuration>
Codice di esempio
Negli esempi seguenti viene abilitata la registrazione HTTP per un sito Web denominato Contoso e si specifica che IIS non deve registrare alcuna richiesta.
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
Nota
È necessario assicurarsi di impostare il parametro commit su apphost
quando si usa AppCmd.exe per configurare queste impostazioni. Questa operazione esegue il commit delle impostazioni di configurazione nella sezione percorso appropriata nel file di 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()