structure HTTP_LOGGING_INFO (http.h)

La structure HTTP_LOGGING_INFO est utilisée pour activer la journalisation côté serveur sur un groupe d’URL ou sur une session serveur.

Cette structure doit être utilisée lors de la définition ou de l’interrogation de HttpServerLoggingProperty sur un groupe d’URL ou une session serveur.

Syntaxe

typedef struct _HTTP_LOGGING_INFO {
  HTTP_PROPERTY_FLAGS        Flags;
  ULONG                      LoggingFlags;
  PCWSTR                     SoftwareName;
  USHORT                     SoftwareNameLength;
  USHORT                     DirectoryNameLength;
  PCWSTR                     DirectoryName;
  HTTP_LOGGING_TYPE          Format;
  ULONG                      Fields;
  PVOID                      pExtFields;
  USHORT                     NumOfExtFields;
  USHORT                     MaxRecordSize;
  HTTP_LOGGING_ROLLOVER_TYPE RolloverType;
  ULONG                      RolloverSize;
  PSECURITY_DESCRIPTOR       pSecurityDescriptor;
} HTTP_LOGGING_INFO, *PHTTP_LOGGING_INFO;

Membres

Flags

Le HTTP_PROPERTY_FLAGS structure qui spécifie si la propriété est présente.

LoggingFlags

Les indicateurs de journalisation facultatifs modifient le comportement de journalisation par défaut.

Il peut s’agir d’une ou plusieurs des valeurs HTTP_LOGGING_FLAG suivantes :

Valeur Signification
HTTP_LOGGING_FLAG_LOCAL_TIME_ROLLOVER
Modifie l’heure de substitution du fichier journal à l’heure locale. Par défaut, les substitutions de fichiers journaux sont basées sur GMT.
HTTP_LOGGING_FLAG_USE_UTF8_CONVERSION
Par défaut, les champs de journalisation unicode sont convertis en plusieurs octets à l’aide de la page de code local des systèmes. Si ces indicateurs sont définis, la conversion UTF8 est utilisée à la place.
HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY
L’indicateur Erreurs de journal uniquement active les erreurs de journalisation uniquement. Par défaut, les demandes d’erreur et de réussite sont journalisées.

Les indicateurs HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY et HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY sont utilisés pour effectuer une journalisation sélective. Un seul de ces indicateurs peut être défini à la fois ; ils s’excluent mutuellement.

HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY
L’indicateur réussite du journal uniquement active la journalisation des demandes réussies uniquement. Par défaut, les demandes d’erreur et de réussite sont journalisées.

Les indicateurs HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY et HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY sont utilisés pour effectuer une journalisation sélective. Un seul de ces indicateurs peut être défini à la fois ; ils s’excluent mutuellement.

SoftwareName

Chaîne de nom de logiciel facultative utilisée dans la journalisation de type W3C. Ce nom n’est pas utilisé pour d’autres types de journalisation. Si ce paramètre a la valeur NULL, l’API du serveur HTTP consigne une chaîne par défaut.

SoftwareNameLength

Longueur, en octets, du nom du logiciel. La longueur ne peut pas être supérieure à MAX_PATH.

Si le membre SoftwareName a la valeur NULL, cette longueur doit être égale à zéro.

DirectoryNameLength

Longueur, en octets, du nom du répertoire. La longueur ne peut pas être supérieure à 424 octets.

DirectoryName

Répertoire de journalisation sous lequel les fichiers journaux sont créés. La chaîne de répertoire doit être un chemin complet incluant la lettre de lecteur.

Les applications peuvent utiliser un chemin UNC vers une machine distante pour activer la journalisation UNC.

Format

Un membre de l’énumération HTTP_LOGGING_TYPE spécifiant l’un des formats de fichier journal suivants.

Format Signification
HttpLoggingTypeW3C
Le format de journal est la journalisation étendue de style W3C. Avec ce format, l’application peut choisir une combinaison de champs de journal à consigner. Lorsque la journalisation W3C est définie sur un groupe d’URL, la journalisation est similaire à la journalisation de site IIS6. Lorsque la journalisation W3C est définie sur une session de serveur, cette journalisation fonctionne comme une journalisation centralisée pour tous les groupes d’URL.
HttpLoggingTypeIIS
Le format de journal est la journalisation de style IIS6/5. Ce format a des définitions de champ fixes ; les applications ne peuvent pas sélectionner les champs enregistrés. Ce format ne peut pas être utilisé pour la journalisation d’une session de serveur.
HttpLoggingTypeNCSA
Le format de journal est la journalisation de style NCSA. Ce format a des définitions de champ fixes ; les applications ne peuvent pas sélectionner les champs enregistrés. Ce format ne peut pas être utilisé pour la journalisation d’une session de serveur.
HttpLoggingTypeRaw
Le format de journal est la journalisation binaire centralisée. Ce format a des définitions de champ fixes ; les applications ne peuvent pas sélectionner les champs enregistrés. Ce format ne peut pas être utilisé pour la journalisation d’un groupe d’URL.

Fields

Champs enregistrés lorsque le format est défini sur W3C. Il peut s’agir d’une ou plusieurs des valeurs constantes HTTP_LOG_FIELD_ .

Lorsque le format de journalisation est W3C est , les applications doivent spécifier les champs de journal. Sinon, aucun champ n’est journalisé.

pExtFields

Réservé. Défini sur 0 (zéro) ou NULL.

NumOfExtFields

Réservé. Défini sur 0 (zéro) ou NULL.

MaxRecordSize

Réservé. Défini sur 0 (zéro) ou NULL.

RolloverType

L’un des membres suivants de la HTTP_LOGGING_ROLLOVER_TYPE énumération spécifiant les critères de substitution de fichier journal.

Type de substitution Signification
HttpLoggingRolloverSize
Les fichiers journaux sont roulés lorsqu’ils atteignent ou dépassent une taille spécifiée.
HttpLoggingRolloverDaily
Les fichiers journaux sont roulés tous les jours.
HttpLoggingRolloverWeekly
Les fichiers journaux sont roulés chaque semaine.
HttpLoggingRolloverMonthly
Les fichiers journaux sont roulés tous les mois.
HttpLoggingRolloverHourly
Les fichiers journaux sont roulés toutes les heures.

RolloverSize

Taille maximale, en octets, après laquelle les fichiers journaux sont roulés. La valeur HTTP_LIMIT_INFINITE indique une taille illimitée. La valeur minimale ne peut pas être inférieure à HTTP_MIN_ALLOWED_LOG_FILE_ROLLOVER_SIZE (1024 * 1024).

Ce champ est utilisé uniquement pour le type de substitution HttpLoggingRolloverSize et doit être défini sur zéro pour tous les autres types.

Lorsque le type de substitution est HttpLoggingRolloverSize, les applications doivent spécifier la taille maximale du fichier journal.

pSecurityDescriptor

Descripteur de sécurité appliqué au répertoire des fichiers journaux et à tous les sous-répertoires. Si ce membre a la valeur NULL, soit la liste de contrôle d’accès par défaut système est utilisée, soit la liste de contrôle d’accès est héritée du répertoire parent.

Notes

La propriété HttpServerLoggingProperty définit l’un des quatre types de journalisation côté serveur : HttpLoggingTypeW3C, HttpLoggingTypeIIS, HttpLoggingTypeNCSA ou HttpLoggingTypeRaw. Lorsque cette propriété est définie sur une session de serveur, elle fonctionne comme une forme centralisée de journalisation pour tous les groupes d’URL sous cette session serveur. Les demandes acheminées vers l’un des groupes d’URL sous la session serveur sont enregistrées dans un fichier journal centralisé. Les paramètres de configuration du fichier journal sont passés dans la structure HTTP_LOGGING_INFO dans l’appel à HttpSetServerSessionProperty.

Lorsque cette propriété est définie sur un groupe d’URL, la journalisation est effectuée uniquement sur les demandes routées vers le groupe d’URL. Les fichiers journaux sont créés lorsque la demande arrive sur le groupe d’URL ou la session serveur. Ils ne sont pas créés lors de la configuration de la journalisation.

Les applications doivent s’assurer que le répertoire spécifié dans le membre DirectoryName est unique.

Les noms des fichiers journaux sont basés sur le type de substitution spécifié. Le tableau suivant montre les conventions de nommage des fichiers journaux.

Format Type de substitution Modèle de nom de fichier
Format de journal Microsoft IIS Taille inetsvnn.log
Toutes les heures inyymmddhh.log
Quotidien inyymmdd.log
Hebdomadaire inyymmww.log
Mensuelle inyymm.log
Format de fichier journal commun NCSA Taille ncsann.log
Toutes les heures ncyymmddhh.log
Quotidien ncyymmdd.log
Hebdomadaire ncyymmww.log
Mensuelle ncyymm.log
Format de fichier journal étendu W3C Taille extendnn.log
Toutes les heures exyymmddhh.log
Quotidien exyymmdd.log
Hebdomadaire exyymmww.log
Mensuelle exyymm.log
 

Les lettres yy, mm, ww, dd, hh et nn dans la table représentent les chiffres suivants :

  • yy : représentation à deux chiffres de l’année.
  • mm : représentation à deux chiffres du mois.
  • ww : représentation à deux chiffres de la semaine.
  • dd : représentation à deux chiffres du jour.
  • hh : représentation à deux chiffres de l’heure en notation 24 heures.
  • nn : représentation à deux chiffres de la séquence numérique.

Notez que dans l’API HTTP version 2.0, HttpSendHttpResponse et HttpSendResponseEntityBody ont été révisés pour permettre aux applications de passer une structure HTTP_LOG_FIELDS_DATA afin que la réponse puisse être journalisée. La définition de la propriété HttpServerLoggingProperty sur une session de serveur ou un groupe d’URL ne signifie pas que les réponses HTTP sont journalisées. La journalisation sur le groupe d’URL ou la session serveur n’a lieu que si les appels à HttpSendResponseEntityBody et HttpSendHttpResponse incluent une structure HTTP_LOG_FIELDS_DATA facultative. Pour plus d’informations, consultez la rubrique HTTP_LOG_FIELDS_DATA .

Pour plus d’informations sur les formats de fichiers journaux, consultez la rubrique Formats de fichiers journaux IIS .

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
En-tête http.h

Voir aussi

Structures de l’API serveur HTTP version 2.0

constantes HTTP_LOGGING_FLAG_

HTTP_LOGGING_ROLLOVER_TYPE

HTTP_LOGGING_TYPE

constantes HTTP_LOG_FIELD_

HTTP_SERVER_PROPERTY

HttpCloseRequestQueue

HttpCreateRequestQueue

HttpSetRequestQueueProperty

HttpShutdownRequestQueue