Web サイトの既定のログ ファイル設定 <logFile>
概要
<siteDefaults>
要素の <logFile>
要素には、IIS 7 以降のサイトの既定のログ記録を構成できる属性が含まれています。
たとえば、ログ記録を有効または無効にしたり、IIS ログ ファイルの形式を構成したり、ログ ファイルに格納する情報のカテゴリを指定したり、ログ ファイルが格納されるディレクトリを変更したりできます。 また <logFile>
要素を使用して、ログ ファイルのサイズまたは時間間隔のいずれかに基づいて IIS で新しいログ ファイルが作成される頻度を制御したり、ログ ファイルが到達可能な最大サイズ (バイト単位) を制御したりできます。
既定では、IIS 7 以降では World Wide Web コンソーシアム (W3C) ログ ファイル形式が使用されます。 この設定を変更するには、logFormat 属性を IIS、NCSA、または Custom に変更します。
Note
ODBC ログは、IIS 7 以降ではカスタム ログ モジュールとして実装されています。 その結果、IIS 7 以降で ODBC ログを有効にして構成するには、次の 2 つの個別のアクションが必要です。
<odbcLogging>
要素内の ODBC ログ属性を設定します。 これらの属性では、ODBC 接続のシステム データ ソース名 (DSN)、テーブル名、ユーザー名、およびパスワードを指定します。<logFile>
要素で適切なカスタム ログ属性を設定します。 これらの属性では、ログ ファイル形式を "Custom" に設定し、カスタム ログ プラグイン クラス ID を "{FF16065B-DE82-11CF-BC0A-00AA006111E0}" に設定する必要があります。
ODBC ログの詳細については、<odbcLogging>
要素を参照してください。
logExtFileFlags 属性を編集することで、IIS がログする情報のカテゴリを定義できます。 既定値は Date
、Time
、ClientIP
、UserName
、ServerIP
、Method
、UriStem
、UriQuery
、TimeTaken
、HttpStatus
、Win32Status
、ServerPort
、UserAgent
、HttpSubStatus
、Referer
です。
Note
特定のサイトに対して <siteDefaults>
セクションと <site>
セクションの両方に <logFile>
要素が構成されている場合は、<site>
セクションの構成がそのサイトに対して使われます。
IIS 8.5 を使用すると、標準のログ セットに加えて、カスタム フィールドをログできます。 カスタム フィールドを追加するには、ログ ファイル形式が W3C である必要があります。 詳細については、customFields
を参照してください。
互換性
バージョン | メモ |
---|---|
IIS 10.0 | <logFile> 要素は IIS 10.0 では変更されませんでした。 |
IIS 8.5 | ログ ファイルにフラッシュされる前にバッファーに格納するイベント数を指定する flushByEntrycountW3CLog 属性を追加しました。 ログされた IIS イベントの処理方法を指定する logTargetW3C 属性を追加しました。 ログ ファイル内の行の最大長を指定する maxLogLineLength 属性を追加しました。 <customFields> 子要素を追加しました。 |
IIS 8.0 | -sitename フィールドの内容を指定するために logSiteId 属性が追加され、logExtFileFlags 属性の既定値に referer フラグが追加されました。 |
IIS 7.5 | <logFile> 要素は IIS 7.5 では変更されませんでした。 |
IIS 7.0 | <siteDefaults> 要素の <logFile> 要素が IIS 7.0 で導入されました。 |
IIS 6.0 | <logFile> 要素は、IIS 6.0 IIsWebService メタベース オブジェクトのログ プロパティのセクションを置き換えます。 |
段取り
<logFile>
要素は IIS 7 以降の既定のインストールに含まれています。
操作方法
サーバーの既定のログ設定を編集する方法
インターネット インフォメーション サービス (IIS) マネージャーを開きます。
Windows Server 2012 または Windows Server 2012 R2 を使用している場合:
- タスク バーで、[サーバー マネージャー] をクリックし、[ツール]、[インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
Windows 8 または Windows 8.1 を使用している場合:
- Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
- [管理ツール] をクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
Windows Server 2008 または Windows Server 2008 R2 を使用している場合:
- タスク バーで、[スタート] ボタンをクリックし、[管理ツール]、[インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
Windows Vista または Windows 7 を使用している場合:
- タスク バーで、[スタート]、[コントロール パネル] の順にクリックします。
- [管理ツール] をダブルクリックし、次に [インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
[接続] ペインで、ログを構成するサーバー名をクリックします。
[ログ記録] ペインの [形式] ボックスで、ログ ファイル形式を選び、ログ ファイルを格納するディレクトリへのパスを [ディレクトリ] ボックスに入力するか、[参照...] をクリックして、ログ ファイルを格納するディレクトリを選びます。
W3C ログ ファイル形式を使用する場合:
W3C ログに対して ETW またはファイル ログを構成する方法
インターネット インフォメーション サービス (IIS) マネージャーを開きます。
Windows Server 2012 R2 を使用している場合:
- タスク バーで、[サーバー マネージャー] をクリックし、[ツール]、[インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
Windows 8.1 を使用している場合:
- Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
- [管理ツール] をクリックし、次に [インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
[接続] ペインで、サーバー名を展開します。
サイトのホーム ペインで、[ログ記録] をダブルクリックします。
[ログ記録] ホーム ページの [ログのイベントの保存先] で、[ログ ファイルのみ]、[ETW イベントのみ]、または [ログ ファイルと ETW イベントの両方] を選びます。
エントリ数による W3C ログのフラッシュを構成する方法
インターネット インフォメーション サービス (IIS) マネージャーを開きます。
Windows Server 2012 R2 を使用している場合:
- タスク バーで、[サーバー マネージャー] をクリックし、[ツール]、[インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
Windows 8.1 を使用している場合:
- Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
- [管理ツール] をクリックし、次に [インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
[接続] ペインでサーバーを選び、[構成エディター] をダブルクリックします。
構成エディターの [セクション] で
system.applicationHost
を展開し、次に sites を選びます。siteDefaults を展開してから、logFile を展開します。
flushByEntryCountW3Clog について、ログ ファイルにフラッシュされる前にバッファーに格納するイベント数を入力します。
[操作] ペインで [適用] をクリックします。
ログの行の最大長を構成する方法
インターネット インフォメーション サービス (IIS) マネージャーを開きます。
Windows Server 2012 R2 を使用している場合:
- タスク バーで、[サーバー マネージャー] をクリックし、[ツール]、[インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
Windows 8.1 を使用している場合:
- Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
- [管理ツール] をクリックし、次に [インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
[接続] ペインでサーバーを選び、次に [構成エディター] をダブルクリックします。
構成エディターの [セクション] で
system.applicationHost
を展開し、次に sites を選びます。siteDefaults を展開してから、logFile を展開します。
maxLogLineLength について、ログ ファイルの 1 行の最大バイト数を入力します。
[操作] ペインで [適用] をクリックします。
構成
属性
属性 | 説明 | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
customLogPluginClsid |
省略可能な文字列属性。 カスタム モジュールに対する 1 つ以上の COM オブジェクト クラス ID (CLSID) を、優先順位に従って指定します。 |
||||||||||||||||||||||||||||||||||||||||||||||
directory |
省略可能な文字列属性。 ログ ファイルとログ関連のサポート ファイルが格納されるログ ディレクトリを指定します。 既定値は %SystemDrive%\inetpub\logs\LogFiles です。 |
||||||||||||||||||||||||||||||||||||||||||||||
enabled |
省略可能な Boolean 属性です。 サイトのログ記録が有効 (true) か無効 (false) かを指定します。 注: ASP エラーおよび ODBC エラーは IIS ログ ファイルに記録されません。 既定値は true です。 |
||||||||||||||||||||||||||||||||||||||||||||||
flushByEntryCountW3CLog |
省略可能な uint 属性。 ログ ファイルにフラッシュされる前にバッファーに格納するイベント数を指定します。 数値を小さくすると、イベントがより迅速にフラッシュされますが、ディスク操作の回数が増えた結果としてパフォーマンスが犠牲になります。 さらにリアルタイムなトラブルシューティングを行うにはこの値を減らし、パフォーマンスを向上させるにはこれを増やします。 0 の値は、フラッシュが既定の最大値の 64k で発生することを指定します。既定値は 0 です。 |
||||||||||||||||||||||||||||||||||||||||||||||
localTimeRollover |
省略可能な Boolean 属性です。 新しいログ ファイルがローカル時刻または協定世界時 (UTC) (以前はグリニッジ標準時 (GMT) と呼ばれていました) のどちらに基づいて作成されるかを指定します。 false の場合、新しいログ ファイルは UTC に基づいて作成されます。 注: 設定に関係なく、各 W3C 拡張ログのログ レコードでのタイム スタンプは UTC ベースです。 既定値は false です。 |
||||||||||||||||||||||||||||||||||||||||||||||
logExtFileFlags |
省略可能なフラグ属性。 サイトのイベントをログ中に、ログ ファイル (W3C 拡張ログ ファイル形式を使うとき) と ODBC データ ソースのいずれかに書き込まれる情報のカテゴリを指定します。 logExtFileFlags 属性には、次の値のうち 1 つ以上を指定できます。 複数の値を指定する場合は、コンマ (,) で区切ります。 既定値は Date 、Time 、ClientIP 、UserName 、ServerIP 、Method 、UriStem 、UriQuery 、TimeTaken 、HttpStatus 、Win32Status 、ServerPort 、UserAgent 、HttpSubStatus 、Referer です。
|
||||||||||||||||||||||||||||||||||||||||||||||
logFormat |
省略可能な列挙型属性。 ログ ファイルの形式を指定します。 logFormat 属性には、次のいずれかの値を指定できます。 既定値は W3C です。
|
||||||||||||||||||||||||||||||||||||||||||||||
logSiteId |
省略可能な Boolean 属性です。 s-sitename フィールドにサイト名 (false) またはサイト ID (true) のいずれを含めるかを指定します。 プロパティごとに 1 つのログ ファイルが Site に設定されている場合 (既定の設定)、ログ ファイル名プロパティには代わりにサイト ID が含まれるため、既定ではログ ファイルに s-sitename 列は表示されません。 プロパティごとに 1 つのログ ファイルが Server に設定されている場合、s-sitename 列は既定でログ ファイルに含まれます。既定値は True です。つまり、s-sitename フィールドにはサイト ID が含まれます。 代わりにサイト名をログするには、logSiteID を False に設定します。 |
||||||||||||||||||||||||||||||||||||||||||||||
logTargetW3C |
省略可能な Flags 属性。 IIS で、ログされた IIS イベントの処理に Windows イベント トレーシング (ETW) またはファイル ログあるいはその両方を使うかどうかを指定します。 ETW ではリアルタイムなログ記録が提供され、ETW プロバイダーと標準クエリ メカニズムが使われます。 ファイル ログでは、イベント データはログ データにアクセスするために解析できるテキスト ファイルに格納されます。 IIS でログ ファイルを使う場合、HTTP.sys ではデータはトランザクションの完了後にテキスト ログ ファイルに直接記録されます。 ETW を使う場合、HTTP.sys ではデータは iislogging プロバイダーを使って ETW に送信され、LOGSVC サービスでは、ETW のデータのクエリやワーカー プロセスからのデータの直接収集、ログ ファイルへのデータの送信などのログ データの管理を行います。 logTargetW3C 属性には次の値を指定できます。 既定値は File です。 applicationHost.config でサーバーのログ ファイルの既定値に関する logTargetW3C に File と ETW の両方が表示されている場合、これは、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
Note
AppCmd.exe を使用してこれらの設定を構成するときは、commit パラメーターを必ず 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()