ファイル名
ログファイルの出力先
[Java EE 7共通ディレクトリ]\domains\domain1\logs\access |
[Java EE 7共通ディレクトリ]/domains/domain1/logs/access |
[Java EE 7共通ディレクトリ]\nodes\localhost-domain1\<サーバーインスタンス名>\logs\access |
[Java EE 7共通ディレクトリ]/nodes/localhost-domain1/<サーバーインスタンス名>/logs/access |
HTTPアクセスログのログ出力先ディレクトリは、asadminコマンドのsetサブコマンドで、HTTPサービスの定義項目を設定することで変更可能です。変更については、「設定方法」を参照してください。
出力内容
HTTPサービスの通信情報が出力されます。
仕様
HTTPアクセスログを有効に設定すると、HTTPアクセスログファイルが作成されます。設定方法については、「設定方法」を参照してください。
同名のファイルが存在する場合は追加出力されます。
リクエストラインに出力される値はクライアントから送付された値がそのまま出力されます。
リクエストURLに%エンコードされた文字を含む場合はデコードされずにクライアントから送付された値がそのまま出力されます。
"192.0.2.237" "-" "userA" "29/Dec/2015:13:36:44 +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:8080" "sCoTMyIolLXQzBKj7DhLZgO0mzem10Zn9rco1I4tbZplLlklzRcm0LGzcOVP0007" "15" "ThreadID=36" "ThreadName=http-listener-1(9)" "192.0.2.237" |
同じディレクトリに出力される__asadmin_access_log.txtは、管理用のアプリケーションに対するHTTPアクセスログです。
書き込み権限がない場合、サーバーログに警告メッセージが出力されます(注)。この場合、HTTPアクセスログは出力されません。
注)
一般ユーザでIJServerクラスタを実行する場合の動作です。
一般ユーザでのIJServerクラスタの実行については、「2.1.6 サービス運用ユーザのカスタマイズ」を参照してください。
設定方法
HTTPアクセスログの設定項目は、asadminコマンドのsetサブコマンドで変更可能です。
アクセスログの有効化
HTTPアクセスログの出力を有効にするかを指定します。
形式
HTTPアクセスログに出力する項目を指定します。
ローテーションに関する設定
ローテーションのタイプなど設定します。ローテーションについては、「4.17.6 ログファイルのローテーション」を参照してください。
ログ出力ディレクトリ
ログファイルの出力先を変更できます。
詳細は、「8.8.2 HTTPサービスの定義項目」、「10.1 asadmin」を参照してください。
出力フォーマット
HTTPアクセスログの出力フォーマットはカスタマイズすることが可能です。設定方法については、「設定方法」を参照してください。
項目名は“%”で囲んで小文字で指定します。ただし、%cookies.any%のanyに指定する値は、大文字、小文字を区別するのでRFC2616で定義された値を指定してください。
複数の項目を指定する場合は、空白で区切って指定します。
出力形式の初期値:
%client.name% %client.id% %auth-user-name% %datetime% %request% %status% %response.length% |
フォーマットに空白のみを指定した場合や登録されていない項目名を指定した場合は、下記の値が設定されます。
%client.name% %auth-user-name% %datetime% %request% %status% %response.length% |
項目が複数定義されている場合は、“;”で区切って出力されます。
指定可能な項目は、以下の表を参照してください。
リクエスト情報
項目名 | 説明 | デフォルト |
---|---|---|
%client.name% | クライアントまたは、プロキシサーバなどのIPアドレス/ホスト名を出力します。 | ○ |
%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" "29/Dec/2015:13:39:28 +0900" "POST /web/ HTTP/1.1" "200" "1635" "192.0.2.237:8080" "ZptWfQkSV6lXgjFiKMRzFLbuModhaqVFe7R-HpPnZ2hGvhibLwCm0LClNjZG0004" "15" "ThreadID=34" "ThreadName=http-listener-1(12)" "192.0.2.237" |
注意
HTTPアクセスログの出力を有効にしている場合、性能に影響があります。影響の程度は、アプリケーション、環境/運用、負荷等に依存します。