HTTP ログ <httpLogging>
- 概要
- 互換性
- セットアップ
- 方法
- 構成
- サンプル コード
※本ページに挿入されている画像をクリックすると、画像全体が別ウィンドウで表示されます。
概要
<httpLogging>
要素を使用すると、成功した要求のみのログ エントリ、失敗した要求のみのログ エントリ、または両方のログ エントリを生成するように IIS を構成できます。サーバー レベルで各Web サイトのログを構成すると、この要素を使用して個別の URL で選択的なログを有効にできます。既定では、HTTP ログをインターネット インフォメーション サービス (IIS) 7.0上のすべての要求に対して有効にします。
いつでもサイトのログ ファイルを表示して、失敗している要求と成功している要求を確認できます。IIS でサイトに対する特定の要求をログする必要がなくなった場合は、そのサイトのログを無効にしてください。
互換性
IIS 7.0 | IIS 6.0 | |
---|---|---|
注意 | <httpLogging> は IIS 7.0 で新たに導入された要素です。 |
|
セットアップ
<httpLogging>
要素は、IIS 7.0 の既定のインストールに含まれています。
方法
サイトまたはアプリケーションの HTTP ログを有効にする方法
タスク バーで [スタート] ボタンをクリックし、[管理ツール] をポイントして [インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。
[接続] ウィンドウで、サーバー名を展開して [サイト] を展開し、HTTP ログを構成する Web サイトまたはアプリケーションを選択します。
[ホーム] ウィンドウで [ログ記録] をダブルクリックします。
[操作] ウィンドウで、[有効にする] をクリックしてログを有効にします。
[形式] ドロップダウン リストで、サイトまたはアプリケーションに使用するログ ファイル形式を選択します。また、IIS でログ ファイルを格納する既定の場所を変更する場合は、[ディレクトリ] ボックスでサイトまたはアプリケーションのログ ファイルを格納するパスを入力します。
(オプション) 手順 5 の [形式] ドロップダウン リストで [W3C] を選択した場合、[フィールドの選択] をクリックします。
(オプション) [W3C ログ記録フィールド] ダイアログ ボックスで、ログに記録する W3C フィールドを選択し、記録しない W3C フィールドの選択を解除して、[OK] をクリックします。
[操作] ウィンドウで [適用] をクリックします。
構成
サーバー レベルでの <httpLogging>
要素の構成は ApplicationHost.config ファイルで、サイト、アプリケーション、または URL レベルでのこの要素の構成は該当する Web.config ファイルで、それぞれ設定できます。
属性
属性 | 説明 |
---|---|
dontLog |
オプションの Boolean 属性。 HTTP ログを成功した要求に対して有効にするかどうかを指定します。要求の状態コードが 400 未満の場合、要求は成功したと考えられます。 既定値は false です。 |
selectiveLogging |
オプションの enum 属性。 ログに記録する要求の種類を指定します。 selectiveLogging 属性には、次のいずれかの値を指定できます。 既定値は LogAll です。--------------------------------------------------------------------------------------------------------- 値: LogAll 説明:
値: LogSuccessful 説明:
値: LogError 説明:
|
子要素
なし。
構成サンプル
次の構成例をサイトまたはアプリケーションの Web.config ファイルに組み込むと、HTTP ログを構成して、エラーを生成する要求だけを IIS でログに記録するように指定できます。
<configuration>
<system.webServer>
<httpLogging dontLog="false" selectiveLogging="LogError" />
</system.webServer>
<configuration>
サンプル コード
次の例では、Contoso という Web サイトに対して HTTP ログを有効にして、IIS ですべての要求をログに記録するように指定します。
AppCmd.exe
appcmd.exe set config "Contoso" -section:system.webServer/httpLogging /dontLog:"True" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/httpLogging /selectiveLogging:"LogAll" /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 httpLoggingSection = config.GetSection("system.webServer/httpLogging", "Contoso");
httpLoggingSection["selectiveLogging"] = @"LogAll";
httpLoggingSection["dontLog"] = 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 httpLoggingSection As ConfigurationSection = config.GetSection("system.webServer/httpLogging", "Contoso")
httpLoggingSection("selectiveLogging") = "LogAll"
httpLoggingSection("dontLog") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var httpLoggingSection = adminManager.GetAdminSection("system.webServer/httpLogging", "MACHINE/WEBROOT/APPHOST/Contoso");
httpLoggingSection.Properties.Item("selectiveLogging").Value = "LogAll";
httpLoggingSection.Properties.Item("dontLog").Value = true;
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set httpLoggingSection = adminManager.GetAdminSection("system.webServer/httpLogging", "MACHINE/WEBROOT/APPHOST/Contoso")
httpLoggingSection.Properties.Item("selectiveLogging").Value = "LogAll"
httpLoggingSection.Properties.Item("dontLog").Value = True
adminManager.CommitChanges()