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
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).
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.
Dans le volet Accueil, double-cliquez sur Journalisation.
Dans le volet Actions, cliquez sur Activer pour activer la journalisation.
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.
(Facultatif) Si vous sélectionnez W3C dans la liste déroulante Format dans l’étape 5, cliquez sur Sélectionner des champs.
(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.
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 .
|
É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()