39.3.5 ログのフォーマット
(1) 稼働ログと保守ログのフォーマット
稼働ログおよび保守ログの出力項目と出力内容を次の表に示します。
表39-13 稼働ログと保守ログのフォーマット
項目 | 出力内容 |
---|
番号 | トレースコードの通番(4桁)です。0000から始まり,9999まで行くと,0000に戻ります。 |
日付 | 出力時の日付(yyyy/mm/dd形式) |
時刻 | 出力時の時刻(hh:mm:ss.nnn形式) |
アプリケーション名 | - WebサービスおよびWebサービスクライアントの場合:「cjw」
- cjwsimportコマンドの場合:「cjwsimport」
- cjaptコマンドの場合:「cjwapt」
- cjwsgenコマンドの場合:「cjwsgen」
- WS-RM 1.2機能の場合:「wsrm」
- Webリソースの場合:「cjr」
|
プロセス識別子 | プロセス識別子(16進数) |
スレッド識別子 | スレッド識別子(16進数) |
メッセージID | メッセージID |
メッセージ種別 | メッセージ種別
- ER:エラーメッセージを表示したことを表します。
- EC:例外をキャッチしたことを表します。
- なし:上記以外のトレース情報を表します。
|
メッセージテキスト | メッセージの本体 |
CRLF | レコード終端記号 |
(2) 例外ログと通信ログのフォーマット
例外ログと通信ログの出力項目と出力内容を次の表に示します。
表39-14 例外ログと通信ログのフォーマット
項目 | 出力内容 |
---|
日付 | 出力時の日付(yyyy/mm/dd形式) |
時刻 | 出力時の時刻(hh:mm:ss形式) |
Sourceクラス名 | ログを発行したクラス名 |
レベル | ログの重要度 |
メッセージ | メッセージの本体 |
JAX-WS機能の通信ログの出力例を次に示します。
2008/10/14 13:09:44 com.cosminexus.xml.ws.transport.http.client.HttpTransportPipe process
情報: KDJW30011-I http client message
---[HTTP request]---
SOAPAction: ""
Content-Type: text/xml;charset="utf-8"
X-hitachi-rootAp: MTgxNDczMTYyLzE2ODgvMC84MDI=
X-hitachi-clientAp: MTgxNDczMTYyLzE2ODgvMC84MDI=
Accept: text/xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:jaxWsTest1 xmlns:ns2="http://example.com/sample"><information>Invocation test.</information><count>1003</count></ns2:jaxWsTest1></S:Body></S:Envelope>
2008/10/14 13:09:45 com.cosminexus.xml.ws.transport.http.client.HttpTransportPipe process
情報: KDJW30012-I http client message
---[HTTP response 200]---
HTTP/1.1 200 OK
Keep-alive: timeout=3, max=100
Date: Tue, 14 Oct 2008 04:09:44 GMT
Content-type: text/xml;charset=utf-8
Connection: Keep-Alive
Transfer-encoding: chunked
Server: Cosminexus HTTP Server
<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:jaxWsTest1Response xmlns:ns2="http://example.com/sample"><return>We've got your #1003 message "Invocation test."! It's 2008.10.14 13:09:45 now. See ya!</return></ns2:jaxWsTest1Response></S:Body></S:Envelope> |
JAX-RS機能の通信ログの出力例を次に示します。
- サーバ側
Sep 10, 2011 7:57:48 PM com.cosminexus.jersey.api.container.filter.LoggingFilter filter
INFO: KDJJ30013-I 1 * Server in-bound request
1 > POST http://sample.com/example/root/path%20value;matrix=matrix%20value?query=query%20value
1 > user-agent: Java/1.5.0_11
1 > host: sample.com
1 > accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
1 > connection: keep-alive
1 > content-type: application/x-www-form-urlencoded
1 > content-length: 19
1 >
form=form%2520value
Sep 10, 2011 7:57:48 PM com.cosminexus.jersey.api.container.filter.LoggingFilter$Adapter finish
INFO: KDJJ30015-I 1 * Server out-bound response
1 < 200
1 < Content-Type: text/html
1 <
matrix%20value path%20value form%20value query%20value |
- クライアント側
Aug 27, 2012 10:30:06 AM com.cosminexus.jersey.api.client.filter.LoggingFilter printRequest
INFO: KDJJ30026-I 1 * Client out-bound request
1 > POST http://sample.com/example
1 > Content-Type: text/plain
1 >
requestEntity
Aug 27, 2012 10:30:06 AM com.cosminexus.jersey.api.client.filter.LoggingFilter printResponse
INFO: KDJJ30027-I 1 * Client in-bound response
1 < 200
1 < Content-Type: text/html
1 <
responseEntity |
JAX-RS機能の場合,動作定義ファイルにプロパティを設定していなくても,次に示すサーブレット初期化パラメタと値をweb.xmlに含めることで,Webリソースを含むWebアプリケーションごとに,通信ログを出力するかどうかを設定できます。
項番 | サーブレット初期化パラメタ | 値 | 動作 |
---|
1 | com.sun.jersey.spi.container.ContainerRequestFilters | com.cosminexus.jersey.api.container.filter.LoggingFilter | HTTPリクエストの情報が通信ログに出力されます。 |
2 | com.sun.jersey.spi.container.ContainerResponseFilters | com.cosminexus.jersey.api.container.filter.LoggingFilter | HTTPレスポンスの情報が通信ログに出力されます。 |
- 注
- この値以外を指定した場合,設定は無視されます。
- 動作定義ファイルにプロパティを設定している場合,Webリソースを含むWebアプリケーションごとに,通信ログを出力するかどうかを設定することはできません。
エンティティの情報の出力を抑止するかどうかも,Webリソースを含むWebアプリケーションごとに設定できます。サーブレット初期化パラメタと値を次に示します。
項番 | サーブレット初期化パラメタ | 値 | 動作 |
---|
1 | com.sun.jersey.config.feature.logging.DisableEntitylogging | true | エンティティの情報が通信ログに出力されません。 |
false | エンティティの情報が通信ログに出力されます。 |
- 注
- trueまたはfalse以外の値を指定した場合,共通定義ファイル(cjrconf.properties)で取得したプロパティの値が使用されて,エンティティの情報が通信ログに出力されます。なお,web.xmlで指定した値は無視されます。
(3) 通信ログの文字エンコーディング
SOAPメッセージ(Webサービスの場合)やHTTPメッセージ(Webリソースの場合)の文字エンコーディングとは関係なく,通信ログには次に示す動作定義ファイルのプロパティで指定した文字エンコーディングが適用されます。デフォルトは,プラットフォーム依存のエンコーディングです。
- com.cosminexus.jaxws.logger.runtime.transport.encodingプロパティ(Webサービスの場合)
- com.cosminexus.jaxrs.logger.runtime.transport.encodingプロパティ(Webリソースの場合)
メッセージの文字エンコーディングと通信ログの文字エンコーディングが異なる場合,組み合わせによっては通信ログ内の一部の文字が不正になるおそれがあります。例えば,メッセージの文字エンコーディングがUTF-8,通信ログの文字エンコーディングがMS932の場合,メッセージ内にMS932に存在しない文字が含まれていると,その文字は通信ログ内で不正となります。そのため,WebサービスまたはWebリソース開発時には,使用できる文字コードまたは文字セットを規定して,WebサービスクライアントまたはWebリソースクライアントの開発者に通知することをお勧めします。
また,使用する機能によっても次の注意事項があります。
- 添付ファイル(wsi:swaRef形式,およびMTOM/XOP仕様形式)を送受信する場合,添付ファイルにはバイナリデータが含まれたり,異なる文字エンコーディング形式の文字列が含まれたりするため,ルートパートのSOAPエンベロープも含めて,通信ログの文字が不正になるおそれがあります。
(4) 通信ログに出力されるHTTPヘッダ名
通信ログに出力されるHTTPヘッダ名は,実際に送受信されるHTTPメッセージ(SOAPメッセージを含むHTTPメッセージ)に関係なく,常に先頭文字だけが大文字になります。
例)Content-type