W3C 集中ログ ファイル <centralW3CLogFile>

  • 概要
  • 互換性
  • セットアップ
  • 方法
  • 構成
  • サンプル コード

※本ページに挿入されている画像をクリックすると、画像全体が別ウィンドウで表示されます。

概要

<centralW3CLogFile> 要素は、サーバー上のすべてのサイトのW3C 集中ログ設定を指定します。

:<centralW3CLogFile> 要素の属性を有効にするには、親 <log> 要素の centralLogFileMode 属性を CentralW3C に設定する必要があります。<log> 要素の centralLogFileMode 属性が CentralBinary または Site に設定されている場合、<centralW3CLogFile> 要素の属性は無視されます。

:W3C 形式のログ ファイルは、ほとんどのログ解析ユーティリティで処理できるテキストベース ファイルです。バイナリ ログ ファイルは独自の保存形式を使用しており、Microsoft の LogParser(英語) ユーティリティなど、その形式のログ ファイルを処理できるアプリケーションが必要です。

互換性

  IIS 7.0 IIS 6.0
注意 <log><centralW3CLogFile> は IIS 7.0 で新たに導入された要素です。 <log> 要素は、IIS 6.0 の CentralW3CLoggingEnabled フラグに代わるものです。

セットアップ

<log> 要素の <centralW3CLogFile> 要素は、IIS 7.0 の既定のインストールに含まれています。

方法

サーバーで W3C 集中ログを有効にする方法

  1. タスク バーで [スタート] をクリックし、[管理ツール] をポイントして [インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。

  2. [接続] ウィンドウでサーバーの名前をクリックします。

  3. サーバーの [ホーム] ウィンドウで [ログ記録] をダブルクリックします。

    拡大

  4. [ログ記録] ページの [ログ ファイル作成単位] で、ドロップダウン リストから [サーバー] を選択し、[形式] ドロップダウン リストから [W3C] を選択します。

    拡大

  5. [操作] ウィンドウで [適用] をクリックします。

構成

属性

属性 説明
directory オプションの string 属性。

ログ エントリを書き込むディレクトリを指定します。

既定値は %SystemDrive%\inetpub\logs\LogFiles です。
enabled オプションの Boolean 属性。

W3C 集中ログを有効にするかどうかを指定します。

既定値は true です。
localTimeRollover オプションの Boolean 属性。

新規ログ ファイルをローカル時刻または世界協定時刻 (UTC) のどちらに基づいて作成するかを指定します。値が true の場合はローカル時刻に基づいて、false の場合は UTC に基づいて新規ログ ファイルを作成します。
既定値は false です。
logExtFileFlags オプションの flags 属性。

ログするフィールドを指定します。

logExtFileFlags 属性には、次のいずれかの値またはこれらの値の一覧を指定できます。既定値は次の値の一覧です。DateTimeClientIPUserNameSiteNameServerIPMethodUriStemUriQueryHttpStatusTimeTaken, Win32StatusServerPortUserAgentHttpSubStatus

--------------------------------------------------------

値: 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

説明:

  • クッキーが送信または受信された場合、送信または受信されたクッキーのコンテンツ。
  • 数値は 131072 です。

値: Referer

説明:

  • ユーザーが最後に訪問したサイト。このサイトから現在のサイトへのリンクが提供されました。
  • 数値は 262144 です。

値: ProtocolVersion

説明:

  • クライアントが使用したプロトコルのバージョン。
  • 数値は 524288 です。

値: Host

説明:

  • ホスト ヘッダーがある場合のホスト ヘッダー名。
  • 数値は 1048576 です。

値: HttpSubStatus

説明:

  • 副状態エラー コード。
  • 数値は 2097152 です。
period オプションの enum 属性。

現在のログ ファイルを閉じて、新規ログ ファイルを開始する頻度を指定します。

period 属性には、次のいずれかの値を指定できます。

既定値は Daily です。

--------------------------------------------------------------------------------------------------

値: MaxSize

説明:

  • ログ ファイルが truncateSize 属性で指定されたサイズに達すると、新しいログ ファイルを開始します。
  • 数値は 0 です。

値: Daily

説明:

  • 毎日、新しいログ ファイルを開始します。
  • 数値は 1 です。

値: Weekly

説明:

  • 週 1 回、新しいログ ファイルを開始します。
  • 数値は 2 です。

値: Monthly

説明:

  • 月 1 回、新しいログ ファイルを開始します。
  • 数値は 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

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()