すべてのサイトのログ ファイル <logFile>

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

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

概要

<siteDefaults> 要素の <logFile> 要素の属性を使用すると、インターネット インフォメーション サービス (IIS) 7.0 上のすべてのサイトの既定のログ設定を構成できます。たとえば、ログの有効化または無効化、IIS ログ ファイルの形式の構成、ログ ファイルに格納する情報のカテゴリの指定、およびログ ファイルが格納されるディレクトリの変更などを行うことができます。また、<logFile> 要素を使用して、ログ ファイルのサイズと時間間隔のいずれかに基づいて IIS で新規ログ ファイルを作成する頻度を制御したり、ログ ファイルの最大サイズ (バイト単位) を制御したりすることができます。

既定では、IIS 7.0 では World Wide Web コンソーシアム (W3C) ログ ファイル形式が使用されます。この設定は、logFormat 属性を IISNCSA、または Custom にすることで変更できます。

IIS でログに記録される情報のカテゴリは、logExtFileFlags 属性を編集することにより定義できます。既定値は、DateTimeClientIPUserNameServerIPMethodUriStemUriQueryTimeTaken HttpStatusWin32StatusServerPortUserAgent、および HttpSubStatus です。

: 特定のサイトに対して <siteDefaults> セクションと <site> セクションの両方で <logFile> 要素が構成されている場合は、<site> セクションの構成がそのサイトに適用されます。

互換性

  IIS 7.0 IIS 6.0
注意 <siteDefaults><logFile> は IIS 7.0 で新たに導入された要素です。

<logFile> 要素は、IIS 6.0 の IIsWebService メタベース オブジェクトのログ プロパティのセクションに代わるものです。

セットアップ

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

方法

サーバーのログ設定の編集方法

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

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

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

    拡大

  4. [ログ記録] ウィンドウの [形式] ボックスでログ ファイル形式を選択し、[ディレクトリ] ボックスにログ ファイルを格納するディレクトリへのパスを入力するか、[参照] をクリックしてログ ファイルを格納するディレクトリを選択します。

    拡大

  5. W3C ログ ファイル形式を使用する場合は、[フィールドの選択] をクリックしてログに記録する情報の種類を選択します。

  6. [W3C ログ記録フィールド] ダイアログ ボックスで、ログに記録するオプションのチェック ボックスをオンにし、記録しないオプションのチェック ボックスをオフにして、[OK] をクリックします。

    拡大

構成

属性

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

カスタム モジュールに対して、優先順位に従って COM オブジェクト クラス ID (CLSID) を指定します。
directory オプションの string 属性。

ログ ファイルおよびログ関連のサポート ファイルが格納されるログ記録ディレクトリを指定します。

既定値は %SystemDrive%\inetpub\logs\LogFiles です。
enabled オプションの Boolean 属性。サイトのログが有効 (true) か無効 (false) かを指定します。

: ASP エラーおよび ODBC エラーは IIS ログ ファイルに記録されません。

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

新規ログ ファイルを、ローカル タイムと世界協定時刻 (UTC) のどちらに基づいて作成するかを指定します (UTC は以前はグリニッジ標準時 (GMT) と呼ばれていました)。false の場合、新規ログ ファイルは UTC に基づいて作成されます。

注 : この設定にかかわらず、W3C 拡張ログの各ログ レコードのタイム スタンプは UTC に基づきます。

既定値は false です。
logExtFileFlags オプションの flags 属性。

サイトのイベントをログする際、ログ ファイル (W3C 拡張ログ ファイル形式を使用する場合) または ODBC データ ソースのいずれかに書き込まれる情報のカテゴリを指定します。logExtFileFlags 属性には、次の 1 つまたは複数の値を指定できます。複数の値を指定する場合はコンマ (,) で区切ります。

既定値は、"Date, Time, ClientIP, UserName, ServerIP, Method, UriStem, UriQuery, TimeTaken, HttpStatus, Win32Status, ServerPort, UserAgent, HttpSubStatus" です。

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

値: BytesRecv

説明:

  • サーバーが受信したバイト数をログに記録します。

値: BytesSent

説明:

  • サーバーが送信したバイト数をログに記録します。

値: ClientIP

説明:

  • 要求を作成したクライアントの IP アドレスをログに記録します。

値: ComputerName

説明:

  • ログ ファイル エントリが生成されたサーバーの名前をログに記録します。

値: Cookie

説明:

  • Cookie が送信または受信された場合、Cookie のコンテンツをログに記録します。

値: Date

説明:

  • アクティビティが発生した日付をログに記録します。

値: Host

説明:

  • ホスト ヘッダーがある場合、ホスト ヘッダー名をログに記録します。

値: HttpStatus

説明:

  • HTTP 状態コードをログに記録します。

値: HttpSubStatus

説明:

  • HTTP エラーの副状態コードをログに記録します。たとえば、500.18 HTTP エラーの場合、状態コードは 500 で副状態コードは 18 です。

値: Method

説明:

  • 要求されたアクション (例 : GET メソッド) をログに記録します。

値: ProtocolVersion

説明:

  • クライアントが使用したプロトコルのバージョンをログに記録します。

値: Referer

説明:

  • ユーザーが最後に訪問したサイトをログに記録します。このサイトから現在のサイトへのリンクが提供されました。

値: ServerIP

説明:

  • ログ ファイル エントリが生成されたサーバーの IP アドレスをログに記録します。

値: ServerPort

説明:

  • サービスに構成されているサーバー ポート番号をログに記録します。

値: SiteName

説明:

  • クライアントで実行されていたインターネット サービス名とインスタンス番号をログに記録します。

値: Time

説明:

  • アクティビティが発生した時刻を世界協定時刻 (UTC) でログに記録します。

値: TimeTaken

説明:

  • 要求が完了するまでにかかった時間をログに記録します。時間はミリ秒単位で記録されます。
    注 : クライアント要求のタイムスタンプは、HTTP.sys が最初のバイトを受信してから要求の解析を開始するまでの間に初期化されます。また、クライアント要求のタイムスタンプは、IIS で最後の送信が完了すると停止します。かかった時間には、ネットワーク上での時間は反映されません。サイトへの最初の要求は、他の同様の要求よりも所要時間が少し長くなります。これは、HTTP.sys が最初の要求を含めるログ ファイルを開くためです。

値: UriQuery

説明:

  • クライアントが実行しようとしたクエリがある場合は、それをログに記録します。ユニバーサル リソース識別子 (URI) クエリは動的なページにのみ必要で、通常は URL に渡されるパラメーターで構成されます。

値: UriStem

説明:

  • アクションのターゲットである、ユニバーサル リソース識別子 (URI) ステム情報をログに記録します (例 : Default.htm)。

値: UserAgent

説明:

  • クライアントが使用したブラウザーの種類をログに記録します。

値: UserName

説明:

  • サーバーにアクセスした認証済みユーザーの名前をログに記録します。匿名ユーザーはハイフンで示されます。

値: Win32Status

説明:

  • Windows 状態コードをログに記録します。
logFormat オプションの enum 属性。

ログ ファイル形式を指定します。logFormat 属性には、次のいずれかの値を指定できます。

既定値は W3C です。

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

値: Custom

説明:

  • カスタム ログ モジュールにカスタム ログ ファイル形式を使用します。
  • 数値は 3 です。

値: IIS

説明:

  • Microsoft IIS ログ ファイル形式を使用してサイトに関する情報を記録します。この形式は HTTP.sys によって処理される、固定の ASCII テキストベース形式です。つまり、ログに記録されるフィールドをカスタマイズできません。フィールドはコンマで区切られ、時刻はローカル タイムで記録されます。次の一覧は、IIS ログ ファイル形式を使用した場合にログに記録されるフィールドを示しています。
    • Client IP address
    • User name
    • Date
    • Time
    • Service and instance
    • Server name
    • Server IP address
    • Time taken
    • Client bytes sent
    • Server bytes sent
    • Service status code (値 200 は要求が正常に処理されたことを示します。)
    • Windows status code (値 0 は要求が正常に処理されたことを示します。)
    • Request type
    • Target of operation
    • Parameters (スクリプトに渡されるパラメーターです。)
    すべてのフィールドにデータが含まれるわけではありません。フィールドにデータが含まれない場合は、ハイフン (-) がプレースホルダーとして表示されます。フィールドに印刷できない文字が含まれる場合は、その文字が HTTP.sys によってプラス記号 (+) に置き換えられ、ログ ファイル形式が保持されます。
  • 数値は 0 です。

値: NCSA

説明:

  • National Center for Supercomputing Applications (NCSA) 共通ログ ファイル形式を使用してサイトに関する情報を記録します。この形式は HTTP.sys によって処理される、固定の ASCII テキストベース形式です。つまり、ログに記録されるフィールドをカスタマイズできません。フィールドはスペースで区切られ、時刻はローカル タイムと世界協定時刻 (UTC) のオフセットで記録されます。次の一覧は、NCSA 共通ログ ファイル形式を使用した場合にログに記録されるフィールドを示しています。
    • Remote host address
    • Remote log name (この値は常にハイフンです。)
    • User name
    • Date, time, and UTC offset
    • Request and protocol version
    • Service status code (値 200 は要求が正常に処理されたことを示します。)
    • Bytes sent
    すべてのフィールドにデータが含まれるわけではありません。フィールドにデータが含まれない場合は、ハイフン (-) がプレースホルダーとして表示されます。フィールドに印刷できない文字が含まれる場合は、その文字が HTTP.sys によってプラス記号 (+) に置き換えられ、ログ ファイル形式が保持されます。
  • 数値は 1 です。

値: W3C

説明:

  • W3C 拡張ログ ファイル形式を使用してサイトに関する情報を記録します。この形式は HTTP.sys によって処理される、カスタマイズ可能な ASCII テキストベース形式です。つまり、ログに記録されるフィールドを指定できます。logExtFileFlags 属性で、記録されるフィールドを指定します。フィールドはスペースで区切られ、時刻は世界協定時刻 (UTC) で記録されます。
  • 数値は 2 です。
period オプションの enum 属性。

IIS で新規ログ ファイルを作成する頻度を指定します。period 属性には、次のいずれかの値を指定できます。

既定値は Daily です。

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

値: Daily

説明:

  • 新規ログ ファイルを毎日作成します。
  • 数値は 1 です。

値: Hourly

説明:

  • 新規ログ ファイルを毎時間作成します。
  • 数値は 4 です。

値: MaxSize

説明:

  • 最大サイズに達したら新規ログ ファイルを作成します。最大サイズは、truncateSize 属性で指定します。
  • 数値は 0 です。

値: Monthly

説明:

  • 新規ログ ファイルを毎月作成します。
  • 数値は 3 です。

値: Weekly

説明:

  • 新規ログ ファイルを毎週作成します。
  • 数値は 2 です。
truncateSize オプションの int64 属性。

ログ ファイルの最大サイズをバイト単位で指定します。このサイズに達すると新規ログ ファイルが作成されます。この値は period 属性に対して MaxSize が選択されている場合にのみ適用されます。最小ファイル サイズは 131,072 バイトです。この属性が 131,072 バイトよりも小さい値に設定されている場合は、既定値は暗黙的に 131,072 バイトと見なされます。

既定値は 20971520 です。

子要素

なし。

構成サンプル

次の構成サンプルでは、IIS 7.0 の既定のログ オプションを指定します。

<system.applicationHost>

   <sites>
      <siteDefaults>
         <logFile logFormat="W3C"
            directory="%SystemDrive%\inetpub\logs\LogFiles"
            enabled="true" />
      </siteDefaults>
   </sites>
</system.applicationHost>

サンプル コード

次のコード サンプルでは、IIS 7.0 の既定のログ オプションを指定します。

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

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