HTTP_LOGGING_INFO-Struktur (http.h)

Die HTTP_LOGGING_INFO-Struktur wird verwendet, um die serverseitige Protokollierung in einer URL-Gruppe oder in einer Serversitzung zu aktivieren.

Diese Struktur muss beim Festlegen oder Abfragen der HttpServerLoggingProperty für eine URL-Gruppe oder Serversitzung verwendet werden.

Syntax

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;

Members

Flags

Die HTTP_PROPERTY_FLAGS-Struktur , die angibt, ob die Eigenschaft vorhanden ist.

LoggingFlags

Die optionalen Protokollierungsflags ändern das Standardprotokollierungsverhalten.

Dies kann mindestens einer der folgenden HTTP_LOGGING_FLAG Werte sein:

Wert Bedeutung
HTTP_LOGGING_FLAG_LOCAL_TIME_ROLLOVER
Ändert die Protokolldateirolloverzeit in Ortszeit. Standardmäßig basieren Protokolldateirollover auf GMT.
HTTP_LOGGING_FLAG_USE_UTF8_CONVERSION
Standardmäßig werden die Unicode-Protokollierungsfelder mithilfe der lokalen Codepage des Systems in Multibyte konvertiert. Wenn diese Flags festgelegt sind, wird stattdessen die UTF8-Konvertierung verwendet.
HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY
Das Flag "Protokollfehler" aktiviert nur Protokollierungsfehler. Standardmäßig werden fehler- und erfolgsanforderung protokolliert.

Die HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY - und HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY-Flags werden für die selektive Protokollierung verwendet. Nur eines dieser Flags kann gleichzeitig festgelegt werden. sie schließen sich gegenseitig aus.

HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY
Das Flag "Nur Protokollerfolg" ermöglicht nur die Protokollierung erfolgreicher Anforderungen. Standardmäßig werden fehler- und erfolgsanforderung protokolliert.

Die HTTP_LOGGING_FLAG_LOG_ERRORS_ONLY - und HTTP_LOGGING_FLAG_LOG_SUCCESS_ONLY-Flags werden für die selektive Protokollierung verwendet. Nur eines dieser Flags kann gleichzeitig festgelegt werden. sie schließen sich gegenseitig aus.

SoftwareName

Die optionale Softwarenamenzeichenfolge, die in der W3C-Typprotokollierung verwendet wird. Dieser Name wird nicht für andere Protokollierungstypen verwendet. Wenn dieser Parameter NULL ist, protokolliert die HTTP-Server-API eine Standardzeichenfolge.

SoftwareNameLength

Die Länge des Softwarenamens in Bytes. Die Länge darf nicht größer als MAX_PATH sein.

Wenn das SoftwareName-ElementNULL ist, muss diese Länge 0 sein.

DirectoryNameLength

Die Länge des Verzeichnisnamens in Bytes. Die Länge darf nicht größer als 424 Bytes sein.

DirectoryName

Das Protokollierungsverzeichnis, unter dem die Protokolldateien erstellt werden. Die Verzeichniszeichenfolge muss ein vollqualifizierter Pfad sein, einschließlich des Laufwerkbuchstabens.

Anwendungen können einen UNC-Pfad zu einem Remotecomputer verwenden, um die UNC-Protokollierung zu aktivieren.

Format

Ein Member der HTTP_LOGGING_TYPE Enumeration, die eines der folgenden Protokolldateiformate angibt.

Format Bedeutung
HttpLoggingTypeW3C
Das Protokollformat ist erweiterte Protokollierung im W3C-Stil. Mit diesem Format kann die Anwendung eine Kombination von Protokollfeldern auswählen, die protokolliert werden sollen. Wenn die W3C-Protokollierung für eine URL-Gruppe festgelegt ist, ähnelt die Protokollierung der IIS6-Websiteprotokollierung. Wenn die W3C-Protokollierung für eine Serversitzung festgelegt ist, funktioniert diese Protokollierung als zentrale Protokollierung für alle URL-Gruppen.
HttpLoggingTypeIIS
Das Protokollformat ist die IIS6/5-Formatprotokollierung. Dieses Format verfügt über feste Felddefinitionen. anwendungen können die protokollierten Felder nicht auswählen. Dieses Format kann nicht zum Protokollieren einer Serversitzung verwendet werden.
HttpLoggingTypeNCSA
Das Protokollformat ist die PROTOKOLLIERUNG im NCSA-Format. Dieses Format verfügt über feste Felddefinitionen. anwendungen können die protokollierten Felder nicht auswählen. Dieses Format kann nicht zum Protokollieren einer Serversitzung verwendet werden.
HttpLoggingTypeRaw
Das Protokollformat ist die zentralisierte binäre Protokollierung. Dieses Format verfügt über feste Felddefinitionen. anwendungen können die protokollierten Felder nicht auswählen. Dieses Format kann nicht zum Protokollieren einer URL-Gruppe verwendet werden.

Fields

Die Felder, die protokolliert werden, wenn das Format auf W3C festgelegt ist. Dies kann mindestens einer der HTTP_LOG_FIELD_ Konstantenwerte sein.

Wenn das Protokollierungsformat W3C ist, müssen Anwendungen die Protokollfelder angeben, andernfalls werden keine Felder protokolliert.

pExtFields

Reserviert. Legen Sie auf 0 (null) oder NULL fest.

NumOfExtFields

Reserviert. Legen Sie auf 0 (null) oder NULL fest.

MaxRecordSize

Reserviert. Legen Sie auf 0 (null) oder NULL fest.

RolloverType

Eines der folgenden Member der HTTP_LOGGING_ROLLOVER_TYPE Enumeration, die die Kriterien für den Protokolldateirollover angibt.

Rollovertyp Bedeutung
HttpLoggingRolloverSize
Die Protokolldateien werden überrollt, wenn sie eine angegebene Größe erreichen oder überschreiten.
HttpLoggingRolloverDaily
Die Protokolldateien werden täglich überrollt.
HttpLoggingRolloverWeekly
Die Protokolldateien werden wöchentlich umgerollt.
HttpLoggingRolloverMonthly
Die Protokolldateien werden jeden Monat umgerollt.
HttpLoggingRolloverHourly
Die Protokolldateien werden stündlich überrollt.

RolloverSize

Die maximale Größe in Bytes, nach der für die Protokolldateien ein Rollover ausgeführt wird. Der Wert HTTP_LIMIT_INFINITE gibt eine unbegrenzte Größe an. Der Mindestwert darf nicht kleiner als HTTP_MIN_ALLOWED_LOG_FILE_ROLLOVER_SIZE (1024 * 1024) sein.

Dieses Feld wird nur für den HttpLoggingRolloverSize-Rollovertyp verwendet und sollte für alle anderen Typen auf Null festgelegt werden.

Wenn der Rollovertyp HttpLoggingRolloverSize ist, müssen Anwendungen die maximale Größe für die Protokolldatei angeben.

pSecurityDescriptor

Der Sicherheitsdeskriptor, der auf das Protokolldateiverzeichnis und alle Unterverzeichnisse angewendet wird. Wenn dieser Member NULL ist, wird entweder die Standard-ACL des Systems verwendet oder die ACL wird vom übergeordneten Verzeichnis geerbt.

Hinweise

Die HttpServerLoggingProperty-Eigenschaft legt einen von vier Typen der serverseitigen Protokollierung fest: HttpLoggingTypeW3C, HttpLoggingTypeIIS, HttpLoggingTypeNCSA oder HttpLoggingTypeRaw. Wenn diese Eigenschaft für eine Serversitzung festgelegt wird, fungiert sie als zentralisierte Protokollierung für alle URL-Gruppen unter dieser Serversitzung. Anforderungen, die an eine der URL-Gruppen unter der Serversitzung weitergeleitet werden, werden in einer zentralen Protokolldatei protokolliert. Die Konfigurationsparameter für die Protokolldatei werden in der HTTP_LOGGING_INFO-Struktur im Aufruf von HttpSetServerSessionProperty übergeben.

Wenn diese Eigenschaft für eine URL-Gruppe festgelegt ist, wird die Protokollierung nur für Anforderungen ausgeführt, die an die URL-Gruppe weitergeleitet werden. Protokolldateien werden erstellt, wenn die Anforderung in der URL-Gruppe oder Serversitzung eingeht. Sie werden nicht erstellt, wenn die Protokollierung konfiguriert wird.

Anwendungen müssen sicherstellen, dass das im DirectoryName-Member angegebene Verzeichnis eindeutig ist.

Die Namen der Protokolldateien basieren auf dem angegebenen Rollovertyp. Die folgende Tabelle zeigt die Benennungskonventionen für Protokolldateien.

Format Rollovertyp Dateinamenmuster
Microsoft IIS-Protokollformat Size inetsvnn.log
Stündlich inyymmddhh.log
Täglich inyymmdd.log
Wöchentlich inyymmww.log
Monatlich inyymm.log
NCSA Common Log File Format Size ncsann.log
Stündlich ncyymmddhh.log
Täglich ncyymmdd.log
Wöchentlich ncyymmww.log
Monatlich ncyymm.log
Erweitertes W3C-Protokolldateiformat Size extendnn.log
Stündlich exyymmddhh.log
Täglich exyymmdd.log
Wöchentlich exyymmww.log
Monatlich exyymm.log
 

Die Buchstaben yy, mm, ww, dd, hh und nn in der Tabelle stellen die folgenden Ziffern dar:

  • yy: Die zweistellige Darstellung des Jahres.
  • mm: Die zweistellige Darstellung des Monats.
  • ww: Die zweistellige Darstellung der Woche.
  • dd: Die zweistellige Darstellung des Tages.
  • hh: Die zweistellige Darstellung der Stunde in 24-Stunden-Notation.
  • nn: Die zweistellige Darstellung der numerischen Sequenz.

Beachten Sie, dass httpSendHttpResponse und HttpSendResponseEntityBody in der HTTP-Version 2.0-API überarbeitet wurden, damit Anwendungen eine HTTP_LOG_FIELDS_DATA Struktur übergeben können, damit die Antwort protokolliert werden kann. Das Festlegen der HttpServerLoggingProperty-Eigenschaft für eine Serversitzung oder eine URL-Gruppe bedeutet nicht, dass HTTP-Antworten protokolliert werden. Die Protokollierung für die URL-Gruppe oder die Serversitzung erfolgt nur, wenn die Aufrufe von HttpSendResponseEntityBody und HttpSendHttpResponse eine optionale HTTP_LOG_FIELDS_DATA-Struktur enthalten. Weitere Informationen finden Sie im Thema HTTP_LOG_FIELDS_DATA .

Informationen zu den Protokolldateiformaten finden Sie im Thema IIS-Protokolldateiformate .

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Kopfzeile http.h

Weitere Informationen

Strukturen der HTTP-Server-API, Version 2.0

HTTP_LOGGING_FLAG_ Konstanten

HTTP_LOGGING_ROLLOVER_TYPE

HTTP_LOGGING_TYPE

HTTP_LOG_FIELD_ Konstanten

HTTP_SERVER_PROPERTY

HttpCloseRequestQueue

HttpCreateRequestQueue

HttpSetRequestQueueProperty

HttpShutdownRequestQueue