網站 < logFile 的預設記錄檔設定>
概觀
元素 <logFile>
的 <siteDefaults>
元素包含屬性,可讓您在 IIS 7 和更新版本上設定月臺的預設記錄。
例如,您可以啟用或停用記錄、設定 IIS 記錄檔的格式、指定要儲存在記錄檔中的資訊類別,以及變更儲存記錄檔的目錄。 您也可以使用 <logFile>
元素來控制 IIS 根據記錄檔大小或時間間隔建立新記錄檔的頻率,以及記錄檔可以變成的位元組大小上限,) 以位元組為單位 (大小上限。
根據預設,IIS 7 和更新版本會使用 World Wide Web Consortium (W3C) 記錄檔格式。 您可以將 logFormat 屬性修改為 IIS、 NCSA或 Custom來變更此設定。
注意
ODBC 記錄會實作為 IIS 7 和更新版本中的自訂記錄模組。 因此,在 IIS 7 和更新版本中啟用和設定 ODBC 記錄包含兩個不同的動作:
- 在 專案中設定 ODBC 記錄屬性
<odbcLogging>
。 這些屬性會指定 ODBC 連線的系統資料來源名稱 (DSN) 、資料表名稱、使用者名稱和密碼。 - 在 元素中
<logFile>
設定正確的自訂記錄屬性。 這些屬性必須將記錄檔格式設定為 「Custom」,並將自訂記錄外掛程式類別識別碼設定為 「{FF16065B-DE82-11CF-BC0A-00AA006111E0}」。
如需 ODBC 記錄的詳細資訊,請參閱 <odbcLogging>
元素。
您可以編輯 logExtFileFlags 屬性,以定義 IIS 記錄的資訊類別。 預設值為 Date
、、、、 ClientIP
UriStem
Method
ServerIP
UriQuery
UserName
UserAgent
ServerPort
HttpStatus
TimeTaken
Win32Status
、、 HttpSubStatus
和 。 Referer
Time
注意
如果專案 <logFile>
同時在 <siteDefaults>
區段和 <site>
特定月臺的 區段中設定,則區段中的 <site>
組態會用於該月臺。
除了標準記錄集之外,IIS 8.5 還可讓您記錄自訂欄位。 記錄檔格式必須是 W3C,才能新增自訂欄位。 如需詳細資訊,請參閱customFields
。
相容性
版本 | 備註 |
---|---|
IIS 10.0 | 在 <logFile> IIS 10.0 中未修改專案。 |
IIS 8.5 | 已新增 flushByEntrycountW3CLog 屬性,以指定要儲存在緩衝區中的事件數目,然後再排清至記錄檔。 已新增 logTargetW3C 屬性,以指定記錄的 IIS 事件處理方式。 已新增 maxLogLineLength 屬性,以指定記錄檔中行的最大長度。 已新增 <customFields> 子專案。 |
IIS 8.0 | 已 logSiteId 新增 屬性以指定 -sitename 欄位的內容,並將 referer 旗標新增至屬性的 logExtFileFlags 預設值。 |
IIS 7.5 | 未 <logFile> 在 IIS 7.5 中修改專案。 |
IIS 7.0 | 元素 <logFile> 的 <siteDefaults> 元素是在 IIS 7.0 中引進。 |
IIS 6.0 | 元素 <logFile> 會取代 IIS 6.0 IIsWebService 中繼基底物件上記錄屬性的區段。 |
安裝程式
專案 <logFile>
包含在 IIS 7 和更新版本的預設安裝中。
作法
如何編輯服務器的預設記錄設定
(IIS) 管理員開啟 Internet Information Services:
如果您使用 Windows Server 2012 或 Windows Server 2012 R2:
- 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services] ([IIS) 管理員]。
如果您使用 Windows 8 或 Windows 8.1:
- 按住Windows鍵,按字母X,然後按一下[主控台]。
- 按一下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
如果您使用 Windows Server 2008 或 Windows Server 2008 R2:
- 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
如果您使用 Windows Vista 或 Windows 7:
- 在工作列上,按一下 [開始],然後按一下[主控台]。
- 按兩下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
在 [ 連線 ] 窗格中,按一下您要設定記錄的伺服器名稱。
在 [ 記錄 ] 窗格中,選取 [ 格式 ] 方塊中的記錄檔格式,然後在 [ 目錄 ] 方塊中輸入您儲存記錄檔之目錄的路徑,或按一下 [ 流覽...] 來選擇要儲存記錄檔的目錄。
如果您選擇使用 W3C 記錄檔格式:
如何設定 W3C 記錄的 ETW 或檔案記錄
(IIS) 管理員開啟 Internet Information Services:
如果您使用 Windows Server 2012 R2:
- 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services] ([IIS) 管理員]。
如果您使用 Windows 8.1:
- 按住Windows鍵,按字母X,然後按一下[主控台]。
- 按一下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
在 [ 連線 ] 窗格中,展開伺服器名稱。
在網站的首頁窗格中,按兩下 [記錄]。
在 [記錄 ] 首頁的 [ 記錄事件目的地] 中,選取 [僅限記錄檔]、[ 僅限 ETW 事件] 或 [記錄檔] 和 [ETW 事件]。
如何依專案計數設定排清 W3C 記錄
(IIS) 管理員開啟 Internet Information Services:
如果您使用 Windows Server 2012 R2:
- 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services] ([IIS) 管理員]。
如果您使用 Windows 8.1:
- 按住Windows鍵,按字母X,然後按一下[主控台]。
- 按一下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
在 [ 連線 ] 窗格中,選取伺服器,然後按兩下 [ 組態編輯器]。
在 [ 組態編輯器] 中,針對 [ 區段] 展開
system.applicationHost
,然後選取 [月臺]。展開 siteDefaults,然後展開 logFile。
針對 flushByEntryCountW3Clog,輸入要儲存在緩衝區中的事件數目,再排清到記錄檔。
在 [ 動作 ] 窗格中,按一下 [ 套用]。
如何設定記錄行長度上限
(IIS) 管理員開啟 Internet Information Services:
如果您使用 Windows Server 2012 R2:
- 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services] ([IIS) 管理員]。
如果您使用 Windows 8.1:
- 按住Windows鍵,按字母X,然後按一下[主控台]。
- 按一下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
在 [ 連線 ] 窗格中展開伺服器,然後按兩下 [ 組態編輯器]。
在 [ 組態編輯器] 中,針對 [ 區段] 展開
system.applicationHost
,然後選取 [月臺]。展開 siteDefaults,然後展開 logFile。
針對 maxLogLineLength,在記錄檔的單行中輸入最大位元組數。
在 [ 動作 ] 窗格中,按一下 [ 套用]。
組態
屬性
屬性 | 描述 | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
customLogPluginClsid |
選擇性字串屬性。 指定自訂模組的 COM 物件類別識別碼 (CLSID) 或識別碼。 |
||||||||||||||||||||||||||||||||||||||||||||||
directory |
選擇性字串屬性。 指定記錄目錄,其中會儲存記錄檔和記錄相關的支援檔案。 預設值是 %SystemDrive%\inetpub\logs\LogFiles 。 |
||||||||||||||||||||||||||||||||||||||||||||||
enabled |
選擇性的 Boolean 屬性。 指定是否 (true) 啟用記錄,或為網站停用 (false) 。 注意: ASP 和 ODBC 錯誤不會記錄在 IIS 記錄檔中。 預設值是 true 。 |
||||||||||||||||||||||||||||||||||||||||||||||
flushByEntryCountW3CLog |
選擇性 uint 屬性。 指定要在清除至記錄檔之前儲存在緩衝區中的事件數目。 較低的數目會導致事件更快速地排清,因為效能會因為磁片作業數目較大而降低。 請減少此值以進行更即時的疑難排解,以提升效能。 的值 0 指定排清會在預設最大值為 64k 時發生。預設值是 0 。 |
||||||||||||||||||||||||||||||||||||||||||||||
localTimeRollover |
選擇性的 Boolean 屬性。 指定是否根據當地時間或國際標準時間 (UTC) 建立新的記錄檔,其先前稱為 Greenwich Mean Time (GMT) 。 若為 false,則會根據 UTC 建立新的記錄檔。 注意: 不論設定為何,每個 W3C 擴充記錄記錄記錄的時間戳記都是以 UTC 為基礎。 預設值是 false 。 |
||||||||||||||||||||||||||||||||||||||||||||||
logExtFileFlags |
選擇性旗標屬性。 指定當您在網站記錄事件期間使用 W3C 擴充記錄檔格式) 或 ODBC 資料來源時,寫入記錄檔 (的資訊類別。 logExtFileFlags屬性可以是下列一或多個值。 如果您指定多個值,請使用逗號分隔 (,) 。 預設值為 Date 、 Time 、 Method UriStem ClientIP UriQuery UserName ServerIP 、、 。 TimeTaken HttpStatus Win32Status ServerPort UserAgent HttpSubStatus Referer
|
||||||||||||||||||||||||||||||||||||||||||||||
logFormat |
選擇性列舉屬性。 指定記錄檔格式。 logFormat屬性可以是下列其中一個值。 預設值是 W3C 。
|
||||||||||||||||||||||||||||||||||||||||||||||
logSiteId |
選擇性的 Boolean 屬性。 指定 s-sitename 欄位將包含網站名稱 (false) ,或網站識別碼 (true) 。 如果每個屬性的一個記錄檔設定為 Site (現成的預設值],則預設不會在記錄檔中取得 s-sitename 資料行,因為記錄檔名稱屬性會改為包含網站識別碼。 如果每個屬性的一個記錄檔設定 Server 為 ,則預設會將 -s-sitename 資料行包含在記錄檔中。預設值為 True ,表示 s-sitename 欄位包含網站識別碼。 若要改為記錄月臺名稱,請將 logSiteID 設定為 False 。 |
||||||||||||||||||||||||||||||||||||||||||||||
logTargetW3C |
選擇性旗標屬性。 指定 IIS 是否會針對 Windows (ETW 使用事件追蹤) 和/或檔案記錄來處理記錄的 IIS 事件。 ETW 提供即時記錄和使用 ETW 提供者和標準查詢機制。 檔案記錄會將事件資料儲存在您可以剖析以存取記錄資料的文字檔中。 當 IIS 使用記錄檔時,HTTP.sys交易完成後,將資料直接記錄到文字記錄檔中。 使用 ETW 時,HTTP.sys使用 iislogging 提供者將資料傳送到 ETW,而 LOGSVC 服務會記錄管理資料,包括查詢 ETW 以取得資料、直接從背景工作進程收集資料,以及將資料傳送至記錄檔。 屬性 logTargetW3C 可以有下列可能的值。 預設值是 File 。 File 如果 和 ETW 都針對伺服器的記錄檔預設列 logTargetW3C 于 applicationHost.config,這相當於在 IIS 管理員的伺服器 [記錄] 窗格中選取[記錄檔] 和 [ETW 事件]。
|
||||||||||||||||||||||||||||||||||||||||||||||
maxLogLineLength |
選擇性 uint 屬性。 指定記錄檔中行的最大長度。 這可讓您限制記錄所累積的資料量,並節省磁碟空間,特別是當您新增自訂記錄欄位時。 範圍是 2 到 65,536。 預設值是 65536 。 |
||||||||||||||||||||||||||||||||||||||||||||||
period |
選擇性列舉屬性。 指定 IIS 建立新記錄檔的頻率。 period 屬性可以是下列其中一個可能的值。 預設值是 Daily 。
|
||||||||||||||||||||||||||||||||||||||||||||||
truncateSize |
選擇性 int64 屬性。 指定要在其中建立新記錄檔的位元組) (記錄檔大小上限。 只有在針對 period 屬性選擇 MaxSize 時,才適用此值。 檔案大小下限為 1,048,576 個位元組。 如果此屬性設定為小於 1,048,576 個位元組的值,則預設值會隱含假設為 1,048,576 個位元組。 預設值是 20971520 。 |
子元素
元素 | 描述 |
---|---|
customFields |
選擇性項目。 指定 W3C 記錄檔中預設自訂欄位的組態設定。 |
組態範例
下列組態範例會指定預設 logFile
選項。
<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>
範例程式碼
下列程式碼範例會設定 IIS 7 的預設 logFile
選項。
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
注意
當您使用AppCmd.exe設定這些設定時,請務必將 認可 參數 apphost
設定為 。 這會將組態設定認可至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 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()