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 が最初の要求でログ ファイルを開くので、他の同様の要求よりも少し長い時間がかかります。