Fehlerprotokollierung in Windows Server 2003 SP1

Hinzufügen von W3C-Stilheadern

Ab Windows Server 2003 mit Service Pack 1 (SP1) enthält das HTTP-Server-API-Fehlerprotokoll W3C-Formatheader, mit denen Protokolldateien mithilfe von Standardprotokollparsern analysiert werden können. Die unten gezeigte Vorlage listet alle Felder auf, die in der HTTP-Fehlerprotokolldatei protokolliert werden können.

#Software: <Name of the HTTP Server>
#Version: 1.0 <Log format version>
#Date: <Log file creation date and time>
#Fields: <date time s-computername c-ip c-port s-ip s-port cs-version
         cs-method cs-uri cs(User-Agent) cs(Cookie) cs(referrer) 
         cs-host sc-status sc-bytes cs-bytes time-taken s-siteid  
         s- reason s-queuename <header names of fields logged>

Protokollieren zusätzlicher Felder

Das HTTP-Fehlerprotokoll wurde um neun weitere Felder erweitert, um Daten zu auftretenden Fehlern zu protokollieren. Die neuen Fehlerfelder sind unten aufgeführt:

  • Servercomputername [ S-COMPUTERNAME]
  • Benutzer-Agent [ _ CS(BENUTZER-AGENT)]
  • Cookie [ CS(COOKIE)]
  • referrer [ CS(referrer)]
  • Hostname [ CS-HOST]
  • Vom Server empfangene Bytes [ SC-BYTES]
  • Vom Server empfangene und verarbeitete Bytes [ CS-BYTES]
  • Time Taken to process the request [ TIME-TAKEN]
  • Queue-Name (für IIS reserviert) [ S-QUEUENAME]

Auswählen von "Zu protokollierende Dateien" in der HTTP-Fehlerprotokolldatei

Der Registrierungsschlüssel ErrorLoggingFields wurde hinzugefügt, um die im HTTP-Fehlerprotokoll protokollierten Felder zu steuern. Diese Registrierungswerte befinden sich unter einem \ HTTP-Parameterschlüssel unter:

HKEY_LOCAL_MACHINE
   System
      CurrentControlSet
      Services
         HTTP
            Parameters

Der ErrorLoggingFields-Registrierungswert ist ein DWORD-Wert, der Bitwerte für jedes der Felder enthält, die protokolliert werden können. Um die Protokollierung eines bestimmten Felds zu aktivieren, legen Sie den entsprechenden Bitwert auf 1 fest, und starten Sie den HTTP-Dienst neu. Legen Sie den Bitwert auf 0 fest, um die Protokollierung zu deaktivieren. Um mehrere Felder zu konfigurieren, verwenden Sie ein bitweises OR der einzelnen Werte. Um beispielsweise die Felder Cookie- und Referrer-Protokollierung zu aktivieren, sollte der Wert 0x00020000 | 0x00040000 = 0x00060000 sein. Wenn der ErrorLoggingFields-Registrierungsschlüssel nicht vorhanden ist, werden die Standardfelder protokolliert. Der ErrorLoggingFields-Wert zum Protokollieren der Standardfelder ist 0x7c884c7. Legen Sie den Wert auf 0x7dff4e7 fest, um die Protokollierung für alle felder in der folgenden Tabelle zu aktivieren.

Die Fehlerprotokollierungsfelder sind in der folgenden Tabelle aufgeführt:

Protokollfeld Standardmäßig protokolliert Bitwert
Date Ja 0x00000001
Time Ja 0x00000002
Servercomputername Nein 0x00000020
Client IP Address Ja 0x00000004
Clientport Ja 0x00400000
Server-IP-Adresse Ja 0x00000040
Serverport Ja 0x00008000
Protokollversion Ja 0x00080000
Methode Ja 0x00000080
URI Ja 0x00800000
Benutzer-Agent Nein 0x00010000
Cookie Nein 0x00020000
Referrer Nein 0x00040000
Host Nein 0x00100000
Protokollstatus Ja 0x00000400
SC-Bytes Nein 0x00001000
CS-Bytes Nein 0x00002000
Benötigte Zeit Nein 0x00004000
Siteid Ja 0x01000000
Grundphrase Ja 0x02000000
Warteschlangenname Nein 0x04000000
Stream-ID Nein 0x????????

Zeit- und Datumsrollover

Standardmäßig wird eine neue HTTP-Fehlerprotokolldatei erstellt (als Dateirollover bezeichnet), wenn die aktuelle Protokolldatei eine angegebene Größe erreicht. Ab Windows Server 2003 mit SP1 können neue Fehlerprotokolldateien basierend auf Datum und Uhrzeit erstellt werden. Zeit- und Datumsrollover werden durch zwei neue Registrierungswerte gesteuert: ErrorLoggingRolloverType und ErrorLoggingLocaltimeRollover. Zum Aktivieren des Zeit- und Datumsrollovers müssen diese Registrierungswerte der Registrierung hinzugefügt werden. Der HTTP-Dienst muss neu gestartet werden, wenn diese Schlüssel der Registrierung hinzugefügt werden. Die Registrierungsschlüssel für den Rollover der Protokolldatei werden unter dem folgenden Schlüssel erstellt:

HKEY_LOCAL_MACHINE
   System
      CurrentControlSet
         Services
            HTTP
               Parameters

Der Registrierungsschlüssel ErrorLoggingRolloverType gibt den gewünschten Rollovertyp an und ist standardmäßig auf größenbasiertes Rollover festgelegt. Ein Rollover kann auch auf täglicher, wöchentlicher, monatlicher oder stündlicher Basis festgelegt werden. Wenn der Dateirollover auf der Zeit basiert, gibt der ErrorLoggingLocaltimeRollover-Wert 0 an, dass die Rolloverzeit in GMT ausgedrückt wird, und der Wert 1 gibt an, dass die Rolloverzeit in Ortszeit ausgedrückt wird. Der ErrorLoggingRolloverType-Schlüssel kann einen Wert von 0 bis 4 verwenden, wie in der folgenden Tabelle aufgeführt.

Rollovertypwert BESCHREIBUNG
0 Größenbasierter Rollover. Protokolldateien werden gerollt, wenn die Datei die im Registrierungsschlüssel ErrorLogFileTruncateSize definierte Größe erreicht.
1 Das Rollover der Protokolldatei erfolgt täglich.
2 Der Rollover der Protokolldatei erfolgt wöchentlich.
3 Das Rollover der Protokolldatei erfolgt monatlich.
4 Der Rollover der Protokolldatei erfolgt stündlich.

Die Namenskonventionen für Dateien, in denen die Fehlerprotokolle gespeichert werden, unterscheiden sich je nach Größe, Datum und Uhrzeit. In der folgenden Tabelle sind die Namenskonventionen für HTTP-Protokolldateien aufgeführt.

Tollovertyp Protokolldateiname BESCHREIBUNG
Size HTTPERRn.LOG Die Protokolldatei wird wiederverwendet, wenn sie eine bestimmte Größe erreicht. n ist die Dateinummer und wird inkrementiert, wenn ein Rollback für die Protokolldatei besteht.
Täglich htYYMMDD.log Die Protokolldatei wird täglich wiederverwendet.
Wöchentlich htYYMMww.log Die Protokolldatei wird wöchentlich wiederverwendet, wobei ww die Woche des Monats ist.
Monatlich htYYMM.log Die Protokolldatei wird jeden Monat wiederverwendet.
Stündlich htYYMMDDhh.log Die Protokolldatei wird stündlich wiederverwendet, wobei hh die Stunde des Tages ist, ausgedrückt in 0-24-Stunden-Notation.