Partager via


Journalisation HTTP <httpLogging>

Vue d’ensemble

L’élément <httpLogging> vous permet de configurer IIS pour générer des entrées de journal uniquement pour les requêtes réussies, les requêtes ayant échoué, ou les deux. Après avoir configuré la journalisation pour chaque site web au niveau du serveur, vous pouvez utiliser cet élément pour activer la journalisation sélective pour les URL individuelles. Par défaut, la journalisation HTTP est activée pour toutes les requêtes sur Internet Information Services (IIS) 7.

Vous pouvez afficher le fichier journal d’un site à tout moment pour voir quelles requêtes échouent et quelles requêtes réussissent. Lorsque vous ne souhaitez plus que IIS journalise certaines demandes d’un site, désactivez la journalisation pour ce site.

Compatibilité

Version Notes
IIS 10.0 L’élément <httpLogging> n’a pas été modifié dans IIS 10.0.
IIS 8.5 L’élément <httpLogging> n’a pas été modifié dans IIS 8.5.
IIS 8.0 L’élément <httpLogging> n’a pas été modifié dans IIS 8.0.
IIS 7.5 L’élément <httpLogging> n’a pas été modifié dans IIS 7.5.
IIS 7.0 L’élément <httpLogging> a été introduit dans IIS 7.0.
IIS 6.0 L’élément <httpLogging> et l’élément <logFile> remplacent les sections des propriétés de journalisation sur l’objet métabase IIS 6.0 IIsWebService.

Programme d’installation

L’élément <httpLogging> est inclus dans l’installation par défaut d’IIS 7.

Procédure

Comment activer la journalisation HTTP pour un site ou une application

  1. Ouvrez le Gestionnaire des services Internet (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Cliquez sur Démarrer, placez le curseur sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
  2. Dans le volet Connexions, développez le nom du serveur, développez Sites, puis accédez au site Web ou à l’application web pour lesquels vous souhaitez configurer la journalisation HTTP.

  3. Dans le volet Accueil, double-cliquez sur Journalisation.

  4. Dans le volet Actions, cliquez sur Activer pour activer la journalisation.
    Screenshot of the Logging pane. The text Use this feature to configure how I I S logs request server is shown.

  5. Sélectionnez le format de fichier journal que vous souhaitez utiliser pour votre site ou application dans liste déroulante Format, et, si vous souhaitez changer la localisation par défaut où IIS stocke les fichiers journaux, entrez le chemin d’accès dans lequel vous souhaitez stocker les fichiers journaux pour le site ou l’application dans le case Répertoire.

  6. (Facultatif) Si vous sélectionnez W3C dans la liste déroulante Format dans l’étape 5, cliquez sur Sélectionner des champs.

  7. (Facultatif) Dans la boîte de dialogue Champs de journalisation W3C, sélectionnez les champs W3C que vous souhaitez journaliser, désactivez tout champ W3C que vous ne souhaitez pas journaliser, puis cliquez sur 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. Dans le volet Actions, cliquez sur Appliquer.
    Screenshot of the Actions pane. The One log file box is shown.

Configuration

Vous pouvez configurer l’élément <httpLogging> au niveau du serveur dans le fichier ApplicationHost.config et au niveau du site, de l’application ou de l’URL dans le fichier Web.config approprié.

Attributs

Attribut Description
dontLog Attribut booléen facultatif.

Spécifie si la journalisation HTTP est activée pour les requêtes réussies. Une requête est considérée comme réussie si son code d’état est inférieur à 400.

La valeur par défaut est false.
selectiveLogging Attribut d’énumération facultatif.

Spécifie les types de requêtes à journaliser.

L’attribut de selectiveLogging peut être l’une des valeurs possibles suivantes.

La valeur par défaut est LogAll.
Valeur Description
LogAll Journaliser toutes les requêtes.

La valeur numérique est 0.
LogSuccessful Journalise seulement les requêtes réussies. La portée de code d’état HTTP pour les requêtes réussies est de 100 à 399.

La valeur numérique est 1.
LogError Journalise seulement les requêtes ayant échoué. La portée de code d’état HTTP pour les requêtes ayant échoué est de 400 à 999.

La valeur numérique est 2.

Éléments enfants

Aucune.

Exemple Configuration

L’exemple de configuration suivant, lorsqu’il est inclus dans un fichier Web.config pour un site ou une application, configure la journalisation HTTP et spécifie que IIS doit journaliser uniquement les requêtes qui génèrent des erreurs.

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

Exemple de code

Les exemples suivants activent la journalisation HTTP pour un site web nommé Contoso, et spécifient que IIS ne doit pas journaliser les requêtes.

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

Remarque

Vous devez veiller à définir le paramètre commit sur apphost quand vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d’emplacement appropriée dans le fichier 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()