ファイル名
server_access_log
出力内容
HTTPサービスの通信情報が出力されます。
仕様
HTTPアクセスログを出力する設定にした時に、HTTPアクセスログファイルが作成されます。設定方法については、「設定方法」を参照してください。
HTTPアクセスログの出力先は以下となります。
[ログ出力ディレクトリ]\http
[ログ出力ディレクトリ]/http
ログ出力ディレクトリについては、「6.8.11 ロガーの定義項目」の「ログ出力ディレクトリ」を参照してください。
同名のファイルが存在する場合は追加出力されます。
リクエストラインに出力される値はクライアントから送付された値がそのまま出力されます。
リクエストURLに%エンコードされた文字を含む場合はデーコードされずにクライアントから送付された値がそのまま出力されます。
"192.0.2.237" "-" "userA" "22/Aug/2007:19:19:15 +0900" "GET /web/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%90%E3%82%A4%E3%83%88 HTTP/1.1" "200" "1635" "192.0.2.237:28090" "6LH3CP1HC4OJED1LC5J64C1P6GOJCCR36GSM8PB2C4R318EHMQIIO08000400000" "15" "ThreadID=174" "ThreadName=httpWorkerThread-28090-5" "192.0.2.237" |
書き込み権限がない場合、イベントログ/システムログに警告メッセージが出力されます(注)。この場合、HTTPアクセスログは出力されません。
注)
一般ユーザでIJServerクラスタを実行する場合の動作です。
一般ユーザでIJServerクラスタを実行する方法は、「2.1.7 サービス運用ユーザーのカスタマイズ」を参照してください。
設定方法
HTTPアクセスログの設定項目は、Interstage Java EE管理コンソール、またはasadminコマンドにより変更可能です。
アクセスログ
HTTPアクセスログの出力を有効にするかを指定します。
形式
HTTPアクセスログに出力する項目を指定します。
その他の設定項目は、「6.8.3 HTTPサービスの定義項目」を参照してください。
Interstage Java EE管理コンソール
[設定] > [クラスタ名-config] または [server-config] > [HTTP サービス] > [ログ]タブの「アクセスログ」、「形式」
asadminコマンドのsetサブコマンド
「configs.config.http-serviceの定義項目」の「アクセスログ」、「形式」
詳細は、Interstage Java EE管理コンソールのヘルプ、または「リファレンスマニュアル(コマンド編)」-「asadmin」を参照してください。
出力フォーマット
HTTPアクセスログの出力フォーマットはカスタマイズすることが可能です。設定方法については、「設定方法」を参照してください。
項目名は”%”で囲んで小文字で指定します。ただし、%cookies.any%のanyに指定する値は、大文字、小文字を区別するのでRFC2616で定義された値を指定してください。
複数の項目を指定する場合は、空白で区切って指定します。指定可能な文字サイズは、512バイトまでとなります。
出力形式のデフォルト値:
%client.name% %client.id% %auth-user-name% %datetime% %request% %status% %response.length% |
フォーマットに空白のみを指定した場合は、ログには何も出力されません。
出力する値がない場合または、登録されていない項目名を指定した場合は、”-“が出力されます。
項目が複数定義されている場合は、”;”で区切って出力します。
設定項目は「6.8.3 HTTPサービスの定義項目」を参照してください。
注意
V9.xからリストアした場合は、V9.xで出力していたフォーマットでHTTPアクセスログを出力します。V9.xのフォーマットについては、「移行ガイド」の「HTTPサービスの移行」を参照してください。
HTTPアクセスログの出力を有効にしている場合、性能に影響があります。影響の程度は、アプリケーション、環境/運用、処理多重度、負荷等に依存します。
指定可能な項目は、以下の表を参照してください。
リクエスト情報
項目名 | 説明 | デフォルト |
---|---|---|
%client.name% |
| ○ |
%client.id% | クライアントから返信されるユーザ個人情報を出力します。ただし、常に“-”を出力します。 | ○ |
%auth-user-name% |
注)リクエストにユーザ名が付与されていない場合は、”-”を表示します。 | ○ |
%datetime% | ログを出力した時点の日時を出力します。 | ○ |
%request% | リクエストラインの内容を出力します。 | ○ |
%status% | ステータスコードを出力します。 | ○ |
%response.length% | レスポンスのデータ長を出力します。単位はbyteです。 | ○ |
%headers.host% | Hostヘッダーの内容を出力します。 | ○ |
%cookies.JSESSIONID% | セッションIDを出力します。 | ○ |
%time-taken% | リクエストの処理開始から、Webアプリケーションの処理終了までの時間(ミリ秒)を出力します。
以下については、含みません。
| ○ |
%thread.id% | スレッドIDを出力します。 | ○ |
%thread.name% | スレッド名を出力します。 | ○ |
%webserver.name% |
| ○ |
%cookies.any% | Cookieヘッダーの内容を出力します。 | |
%headers.any% | リクエストHTTPヘッダーの値を出力します。anyには、RFC 2616 で定義された任意の有効な リクエストHTTP ヘッダーの値を小文字で指定します。 | |
%headers.referer% | Refererヘッダーの内容を出力します。 | |
%headers.user-agent% | User-agentヘッダーの内容を出力します。 | |
%response.headers.any% | レスポンスHTTPヘッダーの値を出力します。anyには、RFC2616で定義された任意の有効なレスポンスHTTPヘッダーの値を小文字で指定します。 | |
%response.headers.set-cookie% | レスポンス時のSet-Cookieヘッダーの内容を出力します。 | |
%http-method% | HTTPメソッドを出力します。 | |
%http-uri% | URIを出力します。 | |
%http-version% | プロトコルバージョンを出力します。 | |
%query-str% | クエリー文字列を出力します。 |
出力例
出力フォーマットに指定した値が空白で区切られて出力されます。
"192.0.2.237" "-" "userA" "22/Aug/2007:19:19:15 +0900" "POST /web/ HTTP/1.1" "200" "1635" "192.0.2.237:28090" "6LH3CP1HC4OJED1LC5J64C1P6GOJCCR36GSM8PB2C4R318EHMQIIO08000400000" "15" "ThreadID=174" "ThreadName=httpWorkerThread-28090-5" "192.0.2.237" |