共用方式為


中央 W3C 記錄檔 < centralW3CLogFile>

概觀

元素 <centralW3CLogFile> 會指定伺服器上所有網站的中央 W3C 記錄設定。

注意

您必須將父 <log> 元素的centralLogFileMode屬性設定為CentralW3C,元素上的 <centralW3CLogFile> 屬性才能生效。 如果專案的 <log>centralLogFileMode屬性設定為CentralBinarySite,則會忽略元素上的 <centralW3CLogFile> 屬性。

注意

W3C 格式的記錄檔是以文字為基礎的檔案,大部分的記錄剖析公用程式都可以處理。 二進位記錄檔使用專屬的儲存格式,需要使用可處理該格式記錄檔的應用程式,例如 Microsoft 的 LogParser 公用程式。

相容性

版本 備註
IIS 10.0 <centralW3CLogFile> IIS 10.0 中未修改專案。
IIS 8.5 <centralW3CLogFile> 在 IIS 8.5 中修改專案。
IIS 8.0 在 IIS 8.0 中未修改專案 <centralW3CLogFile>
IIS 7.5 <centralW3CLogFile> 在 IIS 7.5 中修改專案。
IIS 7.0 元素 <centralW3CLogFile><log> 元素是在 IIS 7.0 中引進。
IIS 6.0 元素 <log> 會取代 IIS 6.0 CentralW3CLoggingEnabled 旗標

安裝程式

元素 <centralW3CLogFile><log> 元素包含在 IIS 7 的預設安裝中。

作法

如何啟用伺服器的中央 W3C 記錄

  1. (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) 管理員]。
  2. 在 [ 連線 ] 窗格中,按一下伺服器名稱。

  3. 在伺服器的 [ 首頁] 窗格中,按兩下 [ 記錄]。
    醒目提示 [記錄] 圖示的螢幕擷取畫面。

  4. 在 [記錄] 頁面的[每一個記錄檔] 下,從下拉式清單中選取 [伺服器],然後從 [格式] 下拉式清單中選擇[W3C]。
    [記錄] 畫面的螢幕擷取畫面,其中已醒目提示 [格式] 下拉式清單。

  5. 在 [動作] 窗格中按一下 [套用]

組態

屬性

屬性 描述
directory 選擇性字串屬性。

指定寫入記錄專案的目錄。

預設值是 %SystemDrive%\inetpub\logs\LogFiles
enabled 選擇性的 Boolean 屬性。

指定是否啟用中央 W3C 記錄。

預設值是 true
localTimeRollover 選擇性的 Boolean 屬性。

指定是否根據當地時間或國際標準時間建立新的記錄檔, (UTC) 。 true值表示新的記錄檔是以當地時間為基礎;false表示它是以 UTC 為基礎。

預設值是 false
logExtFileFlags 選擇性旗標屬性。

指定要記錄的欄位。

logExtFileFlags屬性可以有下列其中一個值或這些值的清單。 預設值是下列值的清單: Date 、、 ClientIPTime 、、 HttpSubStatusUserAgentServerPortWin32StatusTimeTakenHttpStatusUriStemServerIPUriQueryUserNameSiteNameMethod
描述
Date 活動發生的日期。

數值為 1
Time 發生活動的時間,以國際標準時間 (UTC) 。

數值為 2
ClientIP 發出要求之用戶端的 IP 位址。

數值為 4
UserName 存取伺服器之已驗證使用者的名稱。 匿名使用者會以連字號表示。

數值為 8
SiteName 產生記錄檔專案的伺服器名稱。

數值為 16
ComputerName 發出要求的電腦名稱稱。

數值為 32
ServerIP 產生記錄檔專案之伺服器的 IP 位址。

數值為 64
Method 要求的動作,例如 GET 方法。

數值為 128
UriStem 例如,動作的目標Default.htm。

數值為 256
UriQuery 如果有任何,用戶端嘗試執行的查詢。 只有針對動態頁面才需要執行通用資源識別元 (URI) 查詢。

數值為 512
HttpStatus HTTP 狀態碼。

數值為 1024
Win32Status Windows 狀態碼。

數值為 2048
BytesSent 伺服器傳送的位元組數目。

數值為 4096
BytesRecv 伺服器收到的位元組數目。

數值為 8192
TimeTaken 動作所花費的時間,以毫秒為單位。

數值為 16384
ServerPort 為服務設定的伺服器埠號碼。

數值為 32768
UserAgent 用戶端使用的瀏覽器類型。

數值為 65536
Cookie 如果已傳送或接收 Cookie,則為所傳送或接收的 Cookie 內容。

數值為 131072
Referer 使用者上次造訪的網站。 這個網站提供目前網站的連結。

數值為 262144
ProtocolVersion 用戶端使用的通訊協定版本。

數值為 524288
Host 如果有主機標頭,則為主機名。

數值為 1048576
HttpSubStatus 子狀態錯誤碼。

數值為 2097152
period 選擇性列舉屬性。

指定關閉目前記錄檔的頻率,並啟動新的記錄檔。

period 屬性可以是下列其中一個可能的值。

預設值為 Daily
描述
MaxSize 每當記錄檔達到 truncateSize 屬性所指定的大小時,啟動新的記錄檔。

數值為 0
Daily 每天啟動新的記錄檔。

數值為 1
Weekly 每週啟動新的記錄檔一次。

數值為 2
Monthly 每月啟動新的記錄檔一次。

數值為 3
Hourly 每小時啟動新的記錄檔。

數值為 4
truncateSize 選擇性 int64 屬性。

指定將截斷記錄檔內容的大小,以位元組為單位。 當 period 屬性的值是 maxSize時,必須設定這個屬性。 大小必須介於 1048576 (1 MB) 和 4294967295 (4 GB) 之間。

預設值為 20971520 (20 MB) 。

子元素

無。

組態範例

下列設定範例會指定 IIS 會使用中央 W3C 記錄,並每天設定 W3C 記錄檔輪替。

<log centralLogFileMode="CentralW3C">
   <centralBinaryLogFile enabled="true" directory="%SystemDrive%\inetpub\logs\LogFiles" />
   <centralW3CLogFile enabled="true" directory="%SystemDrive%\inetpub\logs\LogFiles" period="Daily" />
</log>

範例程式碼

下列程式碼範例會指定 IIS 會使用中央 W3C 記錄,並每天設定 W3C 記錄檔輪替。

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/log /centralLogFileMode:"CentralW3C" /commit:apphost

appcmd.exe set config -section:system.applicationHost/log /centralW3CLogFile.period:"Daily" /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 logSection = config.GetSection("system.applicationHost/log");
         logSection["centralLogFileMode"] = @"CentralW3C";
         ConfigurationElement centralW3CLogFileElement = logSection.GetChildElement("centralW3CLogFile");
         centralW3CLogFileElement["period"] = @"Daily";

         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 logSection As ConfigurationSection = config.GetSection("system.applicationHost/log")
      logSection("centralLogFileMode") = "CentralW3C"
      Dim centralW3CLogFileElement As ConfigurationElement = logSection.GetChildElement("centralW3CLogFile")
      centralW3CLogFileElement("period") = "Daily"

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var logSection = adminManager.GetAdminSection("system.applicationHost/log", "MACHINE/WEBROOT/APPHOST");
logSection.Properties.Item("centralLogFileMode").Value = "CentralW3C";
var centralW3CLogFileElement = logSection.ChildElements.Item("centralW3CLogFile");
centralW3CLogFileElement.Properties.Item("period").Value = "Daily";

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set logSection = adminManager.GetAdminSection("system.applicationHost/log", "MACHINE/WEBROOT/APPHOST")
logSection.Properties.Item("centralLogFileMode").Value = "CentralW3C"
Set centralW3CLogFileElement = logSection.ChildElements.Item("centralW3CLogFile")
centralW3CLogFileElement.Properties.Item("period").Value = "Daily"

adminManager.CommitChanges()