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

  1. 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).
  2. 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.

  3. Nel riquadro Home fare doppio clic su Registrazione.

  4. Nel riquadro Azioni fare clic su Abilita per abilitare la registrazione.
    Screenshot del riquadro Registrazione. Il testo Usa questa funzionalità per configurare il modo in cui viene visualizzato il server di richiesta dei log di I S.

  5. 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 .

  6. (Facoltativo) Se è stato selezionato W3C nell'elenco a discesa Formato nel passaggio 5, fare clic su Seleziona campi.

  7. (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.
    Screenshot della finestra di dialogo W tre campi di registrazione C. Vengono controllate le caselle di controllo date, ora, indirizzo I P client, nome utente, nome servizio e indirizzo I P del server. Nome servizio evidenziato.

  8. Nel riquadro Azioni fare clic su Applica.
    Screenshot del riquadro Azioni. Viene visualizzata la casella Un file di log.

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.
Valore Descrizione
LogAll Registra tutte le richieste.

Il valore numerico è 0.
LogSuccessful Registra solo richieste riuscite. L'intervallo di codice di stato HTTP per le richieste riuscite è 100-399.

Il valore numerico è 1.
LogError Registra solo richieste non riuscite. L'intervallo di codice di stato HTTP per le richieste non riuscite è 400-999.

Il valore numerico è 2.

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()