Standard-Protokolldateieinstellungen für Websites: <logFile>-Element
Übersicht
Das <logFile>
-Element des <siteDefaults>
-Elements enthält Attribute, mit denen Sie die Standardprotokollierung für eine Site in Internetinformationsdienste 7 (Internet Information Services, IIS) und höher konfigurieren können.
Sie können beispielsweise die Protokollierung aktivieren oder deaktivieren, das Format der IIS-Protokolldatei konfigurieren, die Informationskategorien angeben, die in der Protokolldatei gespeichert werden sollen, und das Verzeichnis ändern, in dem die Protokolldatei gespeichert wird. Sie können das <logFile>
-Element auch verwenden, um basierend auf der Protokolldateigröße oder dem Zeitintervall und der maximalen Größe (in Byte) einer Protokolldatei zu steuern, wie oft IIS eine neue Protokolldatei erstellt.
Standardmäßig verwenden IIS 7 und höhere Versionen das W3C-Protokolldateiformat (World Wide Web Consortium). Sie können diese Einstellung ändern, indem Sie das logFormat-Attribut in IIS, NCSA oder Custom ändern.
Hinweis
Die ODBC-Protokollierung (Open Database Connectivity) wird in IIS 7 und höher als benutzerdefiniertes Protokollierungsmodul implementiert. Daher sind zum Aktivieren und Konfigurieren der ODBC-Protokollierung in IIS 7 und höher zwei separate Aktionen erforderlich:
- Festlegen der Attribute für die ODBC-Protokollierung im
<odbcLogging>
-Element. Diese Attribute geben den Namen der Systemdatenquelle (System Data Source Name, DSN), den Tabellennamen, den Benutzernamen und das Kennwort für die ODBC-Verbindung an. - Festlegen der korrekten Attribute für die benutzerdefinierte Protokollierung im
<logFile>
-Element. Diese Attribute müssen das Protokolldateiformat auf „Custom“ und die Klassen-ID des benutzerdefinierten Protokoll-Plug-Ins auf „{FF16065B-DE82-11CF-BC0A-00AA006111E0}“ festlegen.
Weitere Informationen zur ODBC-Protokollierung finden Sie im Artikel zum <odbcLogging>
-Element.
Sie können die von IIS protokollierten Informationskategorien festlegen, indem Sie das Attribut logExtFileFlags bearbeiten. Die Standardwerte sind Date
, Time
, ClientIP
, UserName
, ServerIP
, Method
, UriStem
, UriQuery
, TimeTaken
, HttpStatus
, Win32Status
, ServerPort
, UserAgent
, HttpSubStatus
und Referer
.
Hinweis
Wenn das <logFile>
-Element für eine bestimmte Site sowohl im Abschnitt <siteDefaults>
als auch im Abschnitt <site>
konfiguriert ist, wird die Konfiguration im Abschnitt <site>
für diese Site verwendet.
In IIS 8.5 können Sie zusätzlich zu den standardmäßig protokollierten Feldern auch benutzerdefinierte Felder protokollieren. Das Protokolldateiformat muss auf W3C festgelegt sein, wenn Sie benutzerdefinierte Felder hinzufügen möchten. Weitere Informationen finden Sie unter customFields
.
Kompatibilität
Version | Hinweise |
---|---|
IIS 10.0 | Das <logFile> -Element wurde in IIS 10.0 nicht geändert. |
IIS 8.5 | Das Attribut flushByEntrycountW3CLog wurde hinzugefügt, um die Anzahl der Ereignisse anzugeben, die im Puffer gespeichert werden, bevor sie in die Protokolldatei geleert werden. Das Attribut logTargetW3C wurde hinzugefügt, um anzugeben, wie protokollierte IIS-Ereignisse verarbeitet werden. Das Attribut maxLogLineLength wurde hinzugefügt, um die maximale Länge einer Zeile in einer Protokolldatei anzugeben. Das untergeordnete <customFields> -Element wurde hinzugefügt. |
IIS 8.0 | Das Attribut logSiteId wurde hinzugefügt, um den Inhalt des Felds „-sitename“ anzugeben, und das referer -Flag wurde dem Standardwert des Attributs logExtFileFlags hinzugefügt. |
IIS 7.5 | Das <logFile> -Element wurde in IIS 7.5 nicht geändert. |
IIS 7.0 | Das <logFile> -Element des <siteDefaults> -Elements wurde in IIS 7.0 eingeführt. |
IIS 6.0 | Das <logFile> -Element ersetzt Abschnitte der Protokollierungseigenschaften im IIsWebService-Metabasisobjekts von IIS 6.0. |
Setup
Das <logFile>
-Element ist in der Standardinstallation von IIS 7 und höher enthalten.
Gewusst wie
Bearbeiten der Standardprotokollierungseinstellungen für einen Server
Öffnen Sie Internetinformationsdienste-Manager (IIS):
Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:
- Klicken Sie auf der Taskleiste auf Server-Manager, wählen Sie Tools und dann Internetinformationsdienste-Manager (IIS) aus.
Vorgehensweise unter Windows 8 oder Windows 8.1:
- Halten Sie die Windows-Logo-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
- Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS).
Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:
- Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und wählen Sie dann Internetinformationsdienste-Manager (IIS) aus.
Vorgehensweise unter Windows Vista oder Windows 7:
- Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
- Doppelklicken Sie auf Verwaltung und dann auf Internetinformationsdienste-Manager (IIS).
Klicken Sie im Bereich Verbindungen auf den Namen des Servers, für den Sie die Protokollierung konfigurieren möchten.
Wählen Sie im Bereich Protokollierung im Feld Format das Protokolldateiformat aus, und geben Sie dann im Feld Verzeichnis den Pfad des Verzeichnisses ein, in dem Sie die Protokolldateien speichern möchten, oder klicken Sie auf Durchsuchen, um das Verzeichnis zum Speichern der Protokolldateien auszuwählen.
Wenn Sie das W3C-Protokolldateiformat verwenden:
- Klicken Sie auf Felder auswählen, um die zu protokollierenden Informationstypen auszuwählen.
- Aktivieren Sie im Dialogfeld W3C-Protokollfelder die Kontrollkästchen für Optionen, die Sie protokollieren möchten, deaktivieren Sie die Kontrollkästchen für Optionen, die Sie nicht protokollieren möchten, und klicken Sie dann auf OK.
Konfigurieren der ETW-Protokollierung (Ereignisablaufverfolgung für Windows) oder Dateiprotokollierung für W3C-Protokolle
Öffnen Sie Internetinformationsdienste-Manager (IIS):
Vorgehensweise unter Windows Server 2012 R2:
- Klicken Sie auf der Taskleiste auf Server-Manager, wählen Sie Tools und dann Internetinformationsdienste-Manager (IIS) aus.
Vorgehensweise unter Windows 8.1:
- Halten Sie die Windows-Logo-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
- Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS).
Erweitern Sie im Bereich Verbindungen den Eintrag für den Servernamen.
Doppelklicken Sie im Bereich „Start“ der Site auf Protokollierung.
Wählen Sie auf der Startseite Protokollierung für Protokollereignisziel die Optionen Nur Protokolldatei, Nur ETW-Ereignis oder Sowohl Protokolldatei als auch ETW-Ereignis aus.
Konfigurieren der Leerung eines W3C-Protokolls nach Eintragsanzahl
Öffnen Sie Internetinformationsdienste-Manager (IIS):
Vorgehensweise unter Windows Server 2012 R2:
- Klicken Sie auf der Taskleiste auf Server-Manager, wählen Sie Tools und dann Internetinformationsdienste-Manager (IIS) aus.
Vorgehensweise unter Windows 8.1:
- Halten Sie die Windows-Logo-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
- Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS).
Wählen Sie im Bereich Verbindungen den Server aus, und doppelklicken Sie dann auf Konfigurations-Editor.
Erweitern Sie im Konfigurations-Editor für Abschnitt den Eintrag
system.applicationHost
, und wählen Sie anschließend sites aus.Erweitern Sie siteDefaults und dann logFile.
Geben Sie für flushByEntryCountW3Clog die Anzahl der Ereignisse ein, die im Puffer gespeichert werden, bevor sie in die Protokolldatei geleert werden.
Klicken Sie im Bereich Aktion auf Übernehmen.
Konfigurieren der maximalen Länge von Protokollzeilen
Öffnen Sie Internetinformationsdienste-Manager (IIS):
Vorgehensweise unter Windows Server 2012 R2:
- Klicken Sie auf der Taskleiste auf Server-Manager, wählen Sie Tools und dann Internetinformationsdienste-Manager (IIS) aus.
Vorgehensweise unter Windows 8.1:
- Halten Sie die Windows-Logo-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
- Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS).
Erweitern Sie im Bereich Verbindungen den Eintrag für den Server, und doppelklicken Sie dann auf Konfigurations-Editor.
Erweitern Sie im Konfigurations-Editor für Abschnitt den Eintrag
system.applicationHost
, und wählen Sie anschließend sites aus.Erweitern Sie siteDefaults und dann logFile.
Geben Sie für maxLogLineLength die maximale Anzahl von Bytes in einer einzelnen Zeile einer Protokolldatei ein.
Klicken Sie im Bereich Aktion auf Übernehmen.
Konfiguration
Attribute
Attribut | Beschreibung | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
customLogPluginClsid |
Optionales Zeichenfolgeattribut. Gibt die COM-Objektklassen-ID (CLSID) oder IDs in der entsprechenden Rangfolge für benutzerdefinierte Module an. |
||||||||||||||||||||||||||||||||||||||||||||||
directory |
Optionales Zeichenfolgeattribut. Gibt das Protokollierungsverzeichnis an, in dem die Protokolldatei und mit der Protokollierung zusammenhängende Unterstützungsdateien gespeichert werden. Der Standardwert ist %SystemDrive%\inetpub\logs\LogFiles . |
||||||||||||||||||||||||||||||||||||||||||||||
enabled |
Optionales boolesches Attribut. Gibt an, ob die Protokollierung aktiviert (true) oder deaktiviert (false) ist. Hinweis: ASP- und ODBC-Fehler werden nicht in den IIS-Protokolldateien protokolliert. Der Standardwert ist true . |
||||||||||||||||||||||||||||||||||||||||||||||
flushByEntryCountW3CLog |
Optionales uint-Attribut. Gibt die Anzahl der Ereignisse an, die im Puffer gespeichert werden, bevor sie in die Protokolldatei geleert werden. Eine niedrigere Zahl führt dazu, dass Ereignisse schneller geleert werden, und beeinträchtigt aufgrund der größeren Anzahl von Datenträgervorgängen die Leistung. Verringern Sie diesen Wert zur Problembehandlung in Echtzeit, und erhöhen Sie ihn zum Steigern der Leistung. Bei einem Wert von 0 erfolgt die Leerung mit dem Standardhöchstwert 64.000.Der Standardwert ist 0 . |
||||||||||||||||||||||||||||||||||||||||||||||
localTimeRollover |
Optionales boolesches Attribut. Gibt an, ob eine neue Protokolldatei basierend auf der Ortszeit oder der koordinierten Weltzeit (Coordinated Universal Time, UTC, zuvor Greenwich Mean Time, GMT) erstellt wird. Bei „false“ wird eine neue Protokolldatei basierend auf der UTC-Zeit erstellt. Hinweis: Unabhängig von der Einstellung basiert der Zeitstempel jedes Protokolldatensatzes der erweiterten W3C-Protokollierung auf der UTC-Zeit. Der Standardwert ist false . |
||||||||||||||||||||||||||||||||||||||||||||||
logExtFileFlags |
Optionales Flags-Attribut. Gibt die Informationskategorien an, die während der Protokollierung von Ereignissen für eine Site in die Protokolldatei (bei Verwendung des erweiterten W3C-Formats für Protokolldateien) oder in die ODBC-Datenquelle geschrieben werden. Das Attribut logExtFileFlags kann auf einen oder mehrere der folgenden Werte festgelegt werden. Wenn Sie mehrere Werte angeben, trennen Sie diese durch ein Komma (,). Die Standardwerte sind Date , Time , ClientIP , UserName , ServerIP , Method , UriStem , UriQuery , TimeTaken , HttpStatus , Win32Status , ServerPort , UserAgent , HttpSubStatus und Referer .
|
||||||||||||||||||||||||||||||||||||||||||||||
logFormat |
Optionales Enumerationsattribut. Gibt das Format der Protokolldatei an. Das logFormat-Attribut kann auf einen der folgenden Werte festgelegt werden. Der Standardwert ist W3C .
|
||||||||||||||||||||||||||||||||||||||||||||||
logSiteId |
Optionales boolesches Attribut. Gibt an, dass das Feld „s-sitename“ entweder den Sitenamen (false) oder die Site-ID (true) enthält. Wenn die Eigenschaft „Eine Protokolldatei pro“ auf Site festgelegt ist (Standardeinstellung), enthält die Protokolldatei standardmäßig keine Spalte „s-sitename“, da stattdessen die Eigenschaft „Protokolldateiname“ die Site-ID enthält. Wenn die Eigenschaft „Eine Protokolldatei pro“ auf Server festgelegt ist, wird die Spalte „-s-sitename“ standardmäßig in die Protokolldatei aufgenommen.Der Standardwert ist True , d. h. das Feld „s-sitename“ enthält die Site-ID. Um stattdessen den Sitenamen zu protokollieren, legen Sie logSiteID auf False fest. |
||||||||||||||||||||||||||||||||||||||||||||||
logTargetW3C |
Optionales Flags-Attribut. Gibt an, ob IIS die Ereignisablaufverfolgung für Windows (ETW) und/oder die Dateiprotokollierung für die Verarbeitung protokollierter IIS-Ereignisse verwendet. ETW bietet Echtzeitprotokollierung und ermöglicht die Verwendung eines ETW-Anbieters und von Standardabfragemechanismen. Die Dateiprotokollierung speichert Ereignisdaten in Textdateien, die Sie analysieren können, um auf Protokollierungsdaten zuzugreifen. Wenn IIS Protokolldateien verwendet, protokolliert HTTP.sys Daten nach dem Abschluss einer Transaktion direkt in Textprotokolldateien. Wenn Sie ETW verwenden, sendet HTTP.sys Daten mithilfe des iislogging-Anbieters an ETW, und der LOGSVC-Dienst verwaltet die Protokolldaten, einschließlich ETW-Datenabfragen, bei denen Daten direkt aus Arbeitsprozessen gesammelt und an eine Protokolldatei gesendet werden. Das Attribut logTargetW3C kann die im Folgenden beschriebenen Werte aufweisen. Der Standardwert ist File . Wenn für die Standard-Protokolldateieinstellungen des Servers sowohl File als auch ETW für logTargetW3C in „applicationHost.config“ aufgeführt sind, entspricht dies der Auswahl von Sowohl Protokolldatei als auch ETW-Ereignis im Bereich Protokollierung des Servers im IIS-Manager.
|
||||||||||||||||||||||||||||||||||||||||||||||
maxLogLineLength |
Optionales uint-Attribut. Gibt die maximale Länge einer Zeile in einer Protokolldatei an. Auf diese Weise können Sie die bei der Protokollierung angesammelte Datenmenge beschränken und insbesondere beim Hinzufügen benutzerdefinierter Protokollierungsfelder Speicherplatz sparen. Der gültige Bereich ist 2 bis 65.536. Der Standardwert ist 65536 . |
||||||||||||||||||||||||||||||||||||||||||||||
period |
Optionales Enumerationsattribut. Gibt an, wie oft IIS eine neue Protokolldatei erstellt. Die zulässigen Werte für das period-Attribut sind im Folgenden aufgeführt. Der Standardwert ist Daily .
|
||||||||||||||||||||||||||||||||||||||||||||||
truncateSize |
Optionales int64-Attribut. Legt die maximale Größe der Protokolldatei (in Bytes) fest, ab der eine neue Protokolldatei erstellt wird. Dieser Wert gilt nur, wenn für das period-Attribut der Wert „MaxSize“ ausgewählt ist. Die minimale Dateigröße beträgt 1.048.576 Bytes. Wenn für dieses Attribut ein kleinerer Wert als 1.048.576 Bytes festgelegt ist, wird implizit der Standardwert von 1.048.576 Bytes angenommen. Der Standardwert ist 20971520 . |
Untergeordnete Elemente
Element | Beschreibung |
---|---|
customFields |
Optionales Element. Gibt die Konfigurationseinstellungen für benutzerdefinierte Standardfelder in einem W3C-Protokoll an. |
Konfigurationsbeispiel
Im folgenden Konfigurationsbeispiel werden die logFile
-Standardoptionen festgelegt.
<system.applicationHost>
<sites>
<siteDefaults>
<logFile logFormat="W3C"
directory="%SystemDrive%\inetpub\logs\LogFiles"
enabled="true">
<customFields>
<clear/>
<add logFieldName="ContosoField" sourceName="ContosoSource"
sourceType="ServerVariable" />
</customFields>
</logFile>
</siteDefaults>
</sites>
</system.applicationHost>
Beispielcode
In den folgenden Codebeispielen werden die logFile
-Standardoptionen für IIS 7 konfiguriert.
AppCmd.exe
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.logFile.enabled:"True" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.logFile.logFormat:"W3C" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.logFile.directory:"%SystemDrive%\inetpub\logs\LogFiles" /commit:apphost
Hinweis
Sie müssen den commit-Parameter auf apphost
festlegen, wenn Sie „AppCmd.exe“ verwenden, um diese Einstellungen zu konfigurieren. Dadurch werden die Konfigurationseinstellungen in den entsprechenden Location-Abschnitt der Datei „ApplicationHost.config“ committet.
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 sitesSection = config.GetSection("system.applicationHost/sites");
ConfigurationElement siteDefaultsElement = sitesSection.GetChildElement("siteDefaults");
ConfigurationElement logFileElement = siteDefaultsElement.GetChildElement("logFile");
logFileElement["logFormat"] = @"W3C";
logFileElement["directory"] = @"%SystemDrive%\inetpub\logs\LogFiles";
logFileElement["enabled"] = 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 sitesSection As ConfigurationSection = config.GetSection("system.applicationHost/sites")
Dim siteDefaultsElement As ConfigurationElement = sitesSection.GetChildElement("siteDefaults")
Dim logFileElement As ConfigurationElement = siteDefaultsElement.GetChildElement("logFile")
logFileElement("logFormat") = "W3C"
logFileElement("directory") = "%SystemDrive%\inetpub\logs\LogFiles"
logFileElement("enabled") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST");
var siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults");
var logFileElement = siteDefaultsElement.ChildElements.Item("logFile");
logFileElement.Properties.Item("logFormat").Value = "W3C";
logFileElement.Properties.Item("directory").Value = "%SystemDrive%\\inetpub\\logs\\LogFiles";
logFileElement.Properties.Item("enabled").Value = true;
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST")
Set siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults")
Set logFileElement = siteDefaultsElement.ChildElements.Item("logFile")
logFileElement.Properties.Item("logFormat").Value = "W3C"
logFileElement.Properties.Item("directory").Value = "%SystemDrive%\inetpub\logs\LogFiles"
logFileElement.Properties.Item("enabled").Value = True
adminManager.CommitChanges()