Web UI フレームワークでの web.xml ファイル内のバックエンド・ロギングの設定
Web UI フレームワークでは、各クライアントの URI に基づいて、バックエンド・フレームワーク使用状況 (Struts、マッシュアップ、および API) のロギングを有効にできます。 ロギングを指定したら、当アプリケーションのデバッグ・ツールバーにある「要求の記録を開始」ボタンをクリックしてロギングをアクティブ化できます。
このタスクについて
ロギング要求ごとに、WUF のバックエンド・ロギングが以下のように実行されます。
- Struts アクションが呼び出されると、その Struts アクション名がログに記録されます。
- マッシュアップが呼び出されると、XAPIMashup クラス名と API 名/フロー名がログに記録されます。
- リダイレクトが実行されるか requestDispatcher が作成されると、ログに記録されます。
手順
- web.xml ファイルの scui-request-log-enabled コンテキスト・パラメーターを使用して、バックエンド・ロギングを設定します。 デフォルトでは、このパラメーターは true に設定されています。 true に設定されていない場合は、「要求の記録を開始」ボタンは表示されません。
サンプルの web.xml エントリー:
<context-param> <param-name>scui-request-log-enabled</param-name> <param-value>true</param-value> </context-param>
- com.sterlingcommerce.ui.web.framework.utils.SCUIUtils クラスを使用して、ロギングが有効になっているかどうかを確認するための静的メソッドを提供します。
public static boolean isRequestLogEnabledInCtx(SCUIContext uiContext){ return isRequestLogEnabledInCtx(uiContext.getWebContext().getRequest()); } public static boolean isRequestLogEnabledInCtx(HttpServletRequest request){ // read from context param if enabled // read from the boolean from isRequestLogEnabled return isRequestLogEnabledInCtx; } ... public static boolean isRequestLogEnabled(SCUIContext uiContext){ return isRequestLogEnabled(uiContext.getWebContext().getRequest()); } ... public static boolean isRequestLogEnabled(HttpServletRequest request){ // read from context param if enabled // read from the boolean from isRequestLogEnabled return isRequestLogEnabled; }
- com.sterlingcommerce.ui.web.framework.context.SCUIContext クラスを使用して、メッセージを実際にログに記録します。 当アプリケーションは、このクラス内のユーティリティー・メソッドを使用して、当アプリケーションの要求ベース・メッセージをログに記録できます。 これらのメッセージがログに記録されるのは、scui-request-log-enabled コンテキスト・パラメーターが true に設定されており、ユーザーがデバッグ・ツールバーを通じて要求の記録を開始済みである場合のみです。注: ロギングが別の内部メソッドなどによって有効にされていない場合にメソッドが呼び出されると、実行時例外がスローされます。
... public void setRequestLogMessage(String message){ ... // check if log enabled and attribute already exists. this.setAttribute(SCUIConstants.REQUEST_LOG_MSG_PARAM_NAME, message); } ...
- 別個のアペンダーを使用して、すべての要求ベース・ロギングが別個のファイルに格納されます。 requestinfo.log ファイルは、 < INSTALL_DIR>/logs またはデフォルトのログ・ロケーションにあります。
ログは、以下のいずれかの操作によって有効化される必要があります。
- -Dyfs.logall=Y コマンド
- システム管理コンソールを通じたロギングの有効化
ログが有効化されていない場合は、ロギングは実行されません。
サンプル・ログ・メッセージ:
2010-02-18 06:38:47,257:DEBUG :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)': Inside SCUIAction flightTrip Getting Request dispatcher /stk/flightTrip/flightTrip.jsp [system]: requestlogger 2010-02-18 06:39:08,806:DEBUG :[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)': Inside SCUIAction getFlightTrip Inside SCUIXAPIMashup com.sterlingcommerce.ui.web.platform.mashup.SCUIXAPIMashup Api name is getFlightTripList Getting Request dispatcher /stk/flightTrip/gft.jsp [stkadmin]: requestlogger 2010-02-18 06:39:09,013:DEBUG :[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)': Inside SCUIAction getOrganizationList Inside SCUIXAPIMashup com.sterlingcommerce.ui.web.platform.mashup.SCUIXAPIMashup Api name is getOrganizationList Getting Request dispatcher /stk/flightTrip/gol.jsp [stkadmin]: requestlogger 2010-02-18 06:39:11,833:DEBUG :[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)': Inside SCUIAction airport Getting Request dispatcher /stk/airport/airportScreen.jsp [stkadmin]: requestlogger 2010-02-18 06:39:15,836:DEBUG :[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)': Inside SCUIAction getAirportList Inside SCUIXAPIMashup com.sterlingcommerce.ui.web.platform.mashup.SCUIXAPIMashup Api name is getAirportList Getting Request dispatcher /stk/airport/airportList.jsp [stkadmin]: requestlogger 2010-02-18 06:39:52,948:DEBUG :[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)': Inside SCUIAction activateRequestLog [stkadmin]: requestlogger
- 「要求ログの開始」 ボタンがアクティブになると、デバッグ・ツールバーに 「要求ログの停止」 ボタンが表示されます。 「要求の記録を停止」ボタンをクリックすると、最後の Struts アクションが呼び出された後に、requestinfo.log ファイル内のロギングが停止されます。