W3C ログ

W3C 拡張ログは、サーバー 側のログ記録の種類であり、サーバー セッションまたは URL グループで有効にすることができます。 URL グループで W3C ログが有効になっている場合、ログ記録は URL グループにルーティングされた要求に対してのみ実行されます。 W3C ログ記録を有効にするように構成された URL グループごとに、個別のログ ファイルが作成されます。

サーバー セッションで W3C ログが有効になっている場合、サーバー セッションの下にあるすべての URL グループのログ記録の一元化された形式として機能します。 サーバー セッション内のすべての URL グループに対して、1 つのログ ファイルが保持されます。

次の表に、HTTP Server API でログに記録できるフィールドの一覧を示します。 テーブルには、 HTTP_LOG_FIELD 定数のサブセットが含まれています。 以下に示すフィールドの一部は、HTTP Server API によって内部的に自動生成されるため、 HTTP_LOG_FIELDS_DATA 構造には含まれていません。 "Appears As" 列には、ログ ファイルに表示されるテキストが含まれています。 テーブル内のデータは、ログ ファイル レコード内の出現順です。

"HTTP Server API generated" とマークされていないフィールドは、アプリケーションによって 構造体HTTP_LOG_FIELDS_DATA 渡される必要があります。 アプリケーションは、渡された HTTP_REQUEST 構造からこれらのフィールドを生成できます。

フィールド [次のように表示] 説明 HTTP_LOG_FIELDS_DATA メンバー HTTP_LOG_FIELDS定数
Date 日付 アクティビティが発生した日付。 HTTP サーバー API が生成されました。 HTTP_LOG_FIELD_DATE
Time time アクティビティが発生した世界協定時刻 (UTC) の時刻。 HTTP サーバー API が生成されました。 HTTP_LOG_FIELD_TIME
サービス名とインスタンス番号 s-sitename クライアントで実行されていたインターネット サービス名とインスタンス番号。 ServiceName HTTP_LOG_FIELD_SITE_NAME
サーバー名 s-computername ログ ファイル エントリが生成されたサーバーの名前。 ServerName HTTP_LOG_FIELD_COMPUTER_NAME
サーバー IP アドレス s-ip ログ ファイル エントリが生成されたサーバーの IP アドレス。 ServerIp HTTP_LOG_FIELD_SERVER_IP
メソッド cs-method 要求された動詞 (GET メソッドなど)。 メソッド HTTP_LOG_FIELD_METHOD
URI Stem cs-uri-stem 動詞のターゲット (たとえば、Default.htm)。 UriStem HTTP_LOG_FIELD_URI_STEM
URI クエリ cs-uri-query クライアントが実行しようとしていたクエリ (存在する場合)。 ユニバーサル リソース識別子 (URI) クエリは、動的ページにのみ必要です。 UriQuery HTTP_LOG_FIELD_URI_QUERY
サーバー ポート s-port サービス用に構成されているサーバー ポート番号。 ServerPort HTTP_LOG_FIELD_SERVER_PORT
[ユーザー名] cs-username サーバーにアクセスした認証済みユーザーの名前。 匿名ユーザーはハイフンで示されます。 UserName HTTP_LOG_FIELD_USER_NAME
Client IP Address (現在の IP アドレス) c-ip 要求を行ったクライアントの IP アドレス。 ClientIp HTTP_LOG_FIELD_CLIENT_IP
プロトコルのバージョン cs-version クライアントが使用した HTTP プロトコルのバージョン。 HTTP サーバー API が生成されました。 HTTP_LOG_FIELD_VERSION
ユーザー エージェント cs(User-Agent) クライアントで使用されたブラウザーの種類。 UserAgent HTTP_LOG_FIELD_USER_AGENT
クッキー cs(Cookie) 送受信された Cookie の内容 (存在する場合)。 クッキー HTTP_LOG_FIELD_COOKIE
Referrer cs(Referrer) ユーザーが最後にアクセスしたサイト。 現在のサイトへのリンクを提供したサイト Referrer HTTP_LOG_FIELD_REFERRER
Host cs-host ホスト ヘッダー名 (存在する場合)。 Host HTTP_LOG_FIELD_HOST
HTTP の状態 sc-status HTTP 状態コード。 ProtocolStatus HTTP_LOG_FIELD_STATUS
Protocol Substatus sc-substatus substatus エラー コード。 SubStatus HTTP_LOG_FIELD_SUB_STATUS
Win32 の状態 sc-win32-status Windows 状態コード。 Win32Status HTTP_LOG_FIELD_WIN32_STATUS
送信バイト数 sc-bytes サーバーによって送信されたバイト数。 HTTP サーバー API が生成されました。 HTTP_LOG_FIELD_BYTES_SENT
受信バイト数 cs-bytes サーバーによって受信および処理されたバイト数。 HTTP サーバー API が生成されました。 HTTP_LOG_FIELD_BYTES_RECV
所要時間 時間の取得 アクションにかかった時間の長さ (ミリ秒単位)。 HTTP サーバー API が生成されました。 HTTP_LOG_FIELD_TIME_TAKEN
ストリーム ID streamid ストリーム ID。 HTTP サーバー API が生成されました。 HTTP_LOG_FIELD_STREAM_ID

 

ログ ファイルは、カスタマイズ可能な ASCII テキスト ベースの形式です。 ファイル内のフィールド プレフィックスは、次のように定義されます。

Prefix 説明
s サーバー アクション。
c クライアント アクション。
Sc サーバーからクライアントへのアクション。
cs クライアントからサーバーへのアクション。

 

アプリケーションでは、1 つ以上の W3C 拡張ログ ファイル フィールドを選択できますが、すべてのフィールドに情報が含まれているわけではありません。 選択されているが情報がないフィールドの場合は、プレースホルダーとしてハイフン (-) が表示されます。 フィールドに印刷できない文字が含まれている場合、HTTP Server API はログ ファイル形式を保持するためにプラス記号 (+) に置き換えます。 これは通常、ウイルス攻撃で発生します。たとえば、悪意のあるユーザーがキャリッジ リターンを送信し、改行をプラス記号 (+) に置き換えない場合にログ ファイル形式が破損する場合です。 フィールドはスペースで区切られます。

URL グループまたはサーバー セッションでフィールドが有効になっているが、要求に対して選択されていない場合、フィールドはプレースホルダーとしてハイフン (-) でログ ファイルに表示されます。

ログ ファイルは、最初の要求が URL グループまたはサーバー セッションに到着したときに作成され、ログ記録が構成されている場合は作成されません。 次の例は、クライアント IP、ユーザー名、サーバー IP、サーバー ポート、メソッド、URI Stem、URI クエリ、状態、およびユーザー エージェント フィールドが有効になっている W3C ログ ファイルの最初のログ ファイル エントリを示しています。

#Software: Microsoft HTTP Server API 2.0  
#Version: 1.0   // the log file version as it's described by "https://www.w3.org/TR/WD-logfile".
#Date: 2002-05-02 17:42:15  // when the first log file entry was recorded, which is when the entire log file was created.
#Fields: date time c-ip cs-username s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status cs(User-Agent)
2002-05-02 17:42:15 172.22.255.255 - 172.30.255.255 80 GET /images/picture.jpg - 200 Mozilla/4.0+(compatible;MSIE+5.5;+Windows+2000+Server)

取得時間フィールドは、要求が解析される前に、HTTP Server API が最初のバイトを受信したときに初期化されます。 最後の送信完了が発生すると、時間がかかったタイムスタンプが停止します。 所要時間は、ネットワーク全体の時間を反映しません。 サイトへの最初の要求では、HTTP Server API が最初の要求でログ ファイルを開くので、他の同様の要求よりも少し長い時間がかかります。