Hitachi

Cosminexus V11 アプリケーションサーバ Webサービス開発ガイド


39.3.5 ログのフォーマット

稼働ログ,保守ログ,例外ログおよび通信ログのフォーマットについて説明します。

〈この項の構成〉

(1) 稼働ログと保守ログのフォーマット

稼働ログおよび保守ログの出力項目と出力内容を次の表に示します。

表39‒13 稼働ログと保守ログのフォーマット

項目

出力内容

番号

トレースコードの通番(4桁)です。0000から始まり,9999まで行くと,0000に戻ります。

日付

出力時の日付(yyyy/mm/dd形式)

時刻

出力時の時刻(hh:mm:ss.nnn形式)

アプリケーション名

  • WebサービスおよびWebサービスクライアントの場合:「cjw」

  • cjwsimportコマンドの場合:「cjwsimport」

  • WS-RM 1.2機能の場合:「wsrm」

  • Webリソースおよび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 &quot;Invocation test.&quot;! It's 2008.10.14 13:09:45 now. See ya!</return></ns2:jaxWsTest1Response></S:Body></S:Envelope>

JAX-RS機能の通信ログの出力例を次に示します。

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リソースの場合)の文字エンコーディングとは関係なく,通信ログには次に示す動作定義ファイルのプロパティで指定した文字エンコーディングが適用されます。デフォルトは,プラットフォーム依存のエンコーディングです。

メッセージの文字エンコーディングと通信ログの文字エンコーディングが異なる場合,組み合わせによっては通信ログ内の一部の文字が不正になるおそれがあります。例えば,メッセージの文字エンコーディングがUTF-8,通信ログの文字エンコーディングがMS932の場合,メッセージ内にMS932に存在しない文字が含まれていると,その文字は通信ログ内で不正となります。そのため,WebサービスまたはWebリソース開発時には,使用できる文字コードまたは文字セットを規定して,WebサービスクライアントまたはWebリソースクライアントの開発者に通知することをお勧めします。

また,使用する機能によっても次の注意事項があります。

(4) 通信ログに出力されるHTTPヘッダ名

通信ログに出力されるHTTPヘッダ名は,実際に送受信されるHTTPメッセージ(SOAPメッセージを含むHTTPメッセージ)に関係なく,常に先頭文字だけが大文字になります。

例)Content-type