W3C ログ
W3C 拡張ログは、サーバー 側のログ記録の種類であり、サーバー セッションまたは URL グループで有効にすることができます。 URL グループで W3C ログが有効になっている場合、ログ記録は URL グループにルーティングされる要求でのみ実行されます。 W3C ログ記録を有効にするように構成された URL グループごとに、個別のログ ファイルが作成されます。
サーバー セッションで W3C ログが有効になっている場合、サーバー セッションのすべての URL グループのログ記録の一元化された形式として機能します。 サーバー セッション内のすべての URL グループに対して、1 つのログ ファイルが保持されます。
次の表に、HTTP サーバー API でログに記録できるフィールドを示します。 テーブルには、HTTP_LOG_FIELD 定数のサブセットが含まれています。 以下に示す一部のフィールドは、HTTP Server API によって内部的に自動生成されるため、HTTP_LOG_FIELDS_DATA 構造体には含まれません。 [表示形式] 列には、ログ ファイルに表示されるテキストが含まれています。 テーブル内のデータは、ログ ファイル レコード内の出現順です。
"HTTP Server API generated" とマークされていないフィールドは、アプリケーション HTTP_LOG_FIELDS_DATA 構造体内で渡す必要があります。 アプリケーションは、渡された HTTP_REQUEST 構造からこれらのフィールドを生成できます。
畑 | [次のように表示] | 形容 | HTTP_LOG_FIELDS_DATA メンバー | HTTP_LOG_FIELDS定数 |
---|---|---|---|---|
日付 | 日付 | アクティビティが発生した日付。 | HTTP サーバー API が生成されました。 | HTTP_LOG_FIELD_DATE |
時間 | 時間 | アクティビティが発生した世界協定時刻 (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 |
クライアント 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 |
リファラー | cs(Referrer) | ユーザーが最後にアクセスしたサイト。 このサイトは、現在のサイトへのリンクを提供しました。 | リファラー | HTTP_LOG_FIELD_REFERRER |
ホスト | cs-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 |
所要時間 | time-taken | アクションが実行された時間の長さ (ミリ秒単位)。 | HTTP サーバー API が生成されました。 | HTTP_LOG_FIELD_TIME_TAKEN |
ストリーム ID | streamid | ストリーム ID。 | HTTP サーバー API が生成されました。 | HTTP_LOG_FIELD_STREAM_ID |
ログ ファイルは、カスタマイズ可能な ASCII テキスト ベースの形式です。 ファイル内のフィールド プレフィックスは次のように定義されます。
接頭辞 | 形容 |
---|---|
s | サーバー アクション。 |
c | クライアント アクション。 |
sc | サーバーからクライアントへのアクション。 |
cs | クライアントからサーバーへのアクション。 |
アプリケーションは W3C 拡張ログ ファイル フィールドの 1 つ以上を選択できますが、すべてのフィールドに情報が含まれるわけではありません。 選択されているが情報がないフィールドの場合、ハイフン (-) がプレースホルダーとして表示されます。 フィールドに印刷できない文字が含まれている場合、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 サーバー API が最初のバイトを受信すると、時間のかかったフィールドが初期化されます。 最後の送信が完了すると、時間のかかったタイムスタンプが停止します。 所要時間は、ネットワーク全体の時間を反映しません。 HTTP サーバー API が最初の要求でログ ファイルを開くので、サイトへの最初の要求には、他の同様の要求よりも少し長い時間がかかります。