Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 保守/移行編


5.2.3 NIO HTTPサーバのアクセスログの出力形式と出力項目

NIO HTTPサーバのアクセスログの出力形式と出力項目について説明します。

アクセスログには,NIO HTTPサーバのリクエストの処理結果が出力されます。NIO HTTPサーバで扱う,HTTP通信とWebSocket通信に分けて,それぞれの出力形式と出力項目について説明します。

〈この項の構成〉

(1) HTTP通信のアクセスログ

出力内容を次の表に示します。

表5‒16 HTTP通信の出力内容

フォーマット引数

出力内容

出力例

%a

WebクライアントのIPアドレス。

10.20.30.40

%A

J2EEサーバのIPアドレス。

10.20.30.100

%b

レスポンスボディの送信バイト数。

0バイトのときは「-」になる。

2048

%B

レスポンスボディの送信バイト数。

0バイトのときは「0」になる。

1024

%h

Webクライアントのホスト名またはIPアドレス。

ホスト名が得られない場合はIPアドレスになる。

10.20.30.40

%H

リクエストプロトコル。

HTTP/1.1

%l

リモートログ名。

常に「-」になる※1

-

%m

リクエストメソッド

GET

%p

Webクライアントからのリクエストを受け付けたポート番号。

80

%q

クエリ文字列。

「?」から始まる。

クエリ文字列がない場合は空文字になる。

?id=100&page=15

%r

リクエストライン。

GET /index.html HTTP/1.0

%s

最終ステータスコード。

200

%S※2

クッキー名JSESSIONIDの値を出力する。

クッキー名JSESSIONIDの値がない場合は「-」になる。

00455AFE4DA4E7B7789F247B8FE5D605

%t

Webクライアントのリクエスト処理を開始した時刻を秒精度で表示。

[dd/MMM/YYYY:HH:mm:ss Z]

[18/Jan/2005:13:06:10 +0900]

%T

Webクライアントのリクエストの処理に要した時間(秒単位)。

2

%d

Webクライアントのリクエスト処理を開始した時刻をミリ秒精度で表示。

[dd/MMM/YYYY:HH:mm:ss.nnn Z](nnnはミリ秒)

[18/Jan/2005:13:06:10.152 +0900]

%D

Webクライアントのリクエストの処理に要した時間(ミリ秒単位)。

38

%u

ベーシック認証ユーザ名,フォーム認証ユーザ名。

認証ユーザ名がない場合は「-」になる。

user

%U

リクエストファイルパス。

/index.html

%v

J2EEサーバのローカルホスト名。

server

%{foo}i※3

リクエストヘッダfooの内容。

fooヘッダが存在しない場合は「-」になる。

%{Host}iの場合

www.example.com:8888

%{foo}c

Webクライアントが送信したCookie情報でCookieの名前がfooの内容を表示する。

Cookieの名前にfooがない場合は「-」になる。

%{MYSESSIONID}cの場合

00455AFE4DA4E7B7789F247B8FE5D605

%{foo}o※3

レスポンスヘッダfooの内容。

fooヘッダが存在しない場合は「-」になる。

%{Server}oの場合

CosminexusComponentContainer

%rootap

ルートアプリケーション情報。

10.100.10.100/1234/0x0000000000000001

%clport

Webクライアントからのリクエストを送信したポート番号。

888

  • 上記の表以外の%から始まる文字(%Gなど)を指定した場合は,メッセージKDJE39401-Wを出力し,デフォルトフォーマットを使用します。また,%{foo}i,%{foo}c,%{foo}oで指定するヘッダの内容,またはCookie名で0文字(%{}iなど)を指定した場合は,メッセージKDJE39401-Wを出力し,デフォルトフォーマットを使用します。

  • フォーマット形式に使用できる文字列長は1024文字までです。1024文字を超えた場合は,メッセージKDJE39400-Wを出力しデフォルト値を使用します。

  • フォーマット形式に使用できる文字は,ASCIIコードの32(10進数)から127(10進数)未満の文字です。

  • 文字列が何も指定されていない場合は,メッセージKDJE39009-Wを出力し,デフォルト値を使用します。

  • 範囲外の文字を指定した場合は,メッセージKDJE39401-Wを出力しデフォルト値を使用します。

注※1

リモートログ名は,RFC1413で規定されているIdentificationプロトコルによって得られるWebクライアント側のユーザ名です。

注※2

%Sで表示される値は,標準でHTTPセッションIDとして使用するクッキー名JSESSIONIDの値です。Servlet3.0以降でクッキー名JSESSIONIDの名前を変更した場合は,%{foo}cを使用します。

注※3

一度のHTTPリクエストまたはHTTPレスポンスで同じヘッダ名を複数回送信する場合があります。この場合,すべてのヘッダの内容を「,」(コンマ)区切りで出力します。

フォーマット引数で記述した表記を次に示します。

%h %{X-Forwarded-For}i %l %u %d %rootap "%r" %s %b %D %S

出力形式を次に示します。

Webクライアントのホスト名またはIPアドレス△X-Forwarded-Forヘッダ△リモートログ名△認証ユーザ名△Webクライアントのリクエスト処理を開始した時刻△ルートアプリケーション情報△”リクエストライン”△最終ステータスコード△HTTPヘッダを除く送信バイト数△Webクライアントのリクエストの処理に要した時間△HTTPセッションID

HTTPセッションIDのあとに改行されます。

(凡例)

△:半角スペース

出力例を次に示します。

10.20.30.40 50.60.70.80 - user [18/Jan/2005:13:06:10.152 +0900] 10.100.10.100/1234/0x0000000000000001 "GET /index.html HTTP/1.0" 200 1024 38 00455AFE4DA4E7B7789F247B8FE5D605

(2) WebSocket通信のアクセスログ

出力内容を次の表に示します。

表5‒17 WebSocket通信の出力内容

フォーマット引数

出力内容

出力例

%TS

WebSocketフレームの送受信時刻。

2001/01/01 01:01:01.111 +0900

%IO

WebSocketフレームの送受信方向。INまたはOUTが出力される。

IN:

サーバインスタンスがWebSocketフレームを受信したことを示す。

OUT:

サーバインスタンスがWebSocketフレームを送信したことを示す。

IN

%OPCODE

WebSocketフレームの種別。Text,Binary,Ping,Pong,またはCloseが出力される。

Text

%URI

リクエストURI。

/websocket_server/test001

%FIN

WebSocketフレームの終端を示す識別子。CONTまたはFINALが出力される。

CONT:

WebSocketフレームの継続。

FINAL:

WebSocketフレームの終端。

CONT

%PAYLOADDATALEN

ペイロードデータ長。

100

%ROOTAP

ルートアプリケーション情報。

10.100.10.100/1234/0x0000000000000001

%CLIENTAP

クライアントアプリケーション情報。

10.100.10.100/1234/0x0000000000000001

%CLOSEREASON

WebSocketコネクションが切断された理由。

NORMAL_CLOSURE:closereason specified by WebSocketClient001

%CLIENTADDR

WebクライアントのIPアドレスとポート番号。

10.20.30.40:55555

%SERVERADDR

J2EEサーバのIPアドレスとポート番号。

10.20.30.100:44444

%SESSIONID

WebSocketセッションID。

11111111-2222-3333-4444-555555555555

%MASK

WebSocketフレームの情報に設定されたMASKを表す。

MASK:

MASKされている。

NOMASK:

MASKされていない。

MASK

%MASKKEY

WebSocketフレームの情報をMASKするためのキー。

MASKしない場合は「-」になる。

EEEEEEEE

%ISEXTENDED

エンドポイントがメッセージの送受信に設定されたフレームを表す。

BASE:

基本フレームを使用している。

EXTENDED:

拡張フレームを使用している。

BASE

%RSV

拡張のネゴシエーション中にクライアントエンドポイントによって設定された予約ビットを表す。

RSV-000

%FRAMEMAINTYPE

WebSocketフレームがデータフレームかコントロールフレームかを指定する。

Data:

データフレームを使用する。

Control:

コントロールフレームを使用する。

Data

%PAYLOADDATA

ペイロードデータ。

aaaaaa

%PAYLOADDATA(n)

メッセージの最初と最後を示す一定数の文字だけを表示する場合のペイロードデータ。

バイナリの場合は常に「-」になる。

aaaaaaaaaa....aaaaaaaaaa

  • フォーマット形式に使用できる文字列長は1024文字までです。1024文字を超えた場合は,メッセージKDJE39400-Wを出力しデフォルト値を使用します。

  • 文字列が何も指定されていない場合は,メッセージKDJE39009-Wを出力し,デフォルト値を使用します。

  • 表内で定義されているフォーマット引数を半角スペースでつなげたものだけ指定できます。その際,次の点に注意してください。

    ・半角スペースの個数は保持されません。

    ・先頭,末尾のスペースは保持されません。

    ・フォーマット引数の順序に制限はありません。

    ・出現回数(同じものを複数回使用するなど)に制限があり,同じフォーマット引数を繰り返し定義した場合,初めに定義したフォーマット引数だけが有効になります。二つ目以降で定義したフォーマット引数は有効になりません。

フォーマット引数で記述した表記を次に示します。

%TS %IO %OPCODE %ROOTAP %URI %FIN %PAYLOADDATALEN %CLIENTAP %CLOSEREASON

出力形式を次に示します。

WebSocketフレームの送受信時刻△WebSocketフレームの送受信方向△WebSocketフレームの種別△ルートアプリケーション情報△リクエストURI△WebSocketフレームの終端を示す識別子△ペイロードデータ長△クライアントアプリケーション情報△WebSocketコネクションが切断された理由

ペイロードデータ長のあとに改行されます。

(凡例)

△:半角スペース

出力例を次に示します。

2001/01/01 01:01:01.111 +0900 IN Text10.100.10.100/1234/0x0000000000000001  /websocket_server/test001 CONT 100 10.100.10.100/1234/0x0000000000000003 -