1

WebSphere アクセス・ログを (コードまたは構成によって) カスタマイズすることはできますか? コンソールを見ると、WebSphere は NCSA 共通フォーマットまたは結合フォーマットのいずれかをサポートしていますが、カスタム フォーマットのオプションはありません。

アクセスログをカスタマイズして、プロキシ、vip、LB、応答時間などのデバッグに役立つ追加情報を含めることを望んでいました.

それが不可能な場合は、独創的なアイデアを受け入れます。重要なのは、デバッグのためにログに記録された追加情報を取得しようとしていることです。log4j はオプションですか? たぶん、カスタム トレース ログでしょうか。

4

4 に答える 4

1

あなたができることの1つは、WASでWebサーバーをセットアップすることです。IBMにはApacheをラップするだけのHTTPサーバーがあります。これにより、おそらく頭痛が軽減されます。または、Apache、IISなどを使用できます。

構成が完了すると、カスタム ロギングを処理するために必要な Apache モジュールをインストールできるようになります。これがどのように機能するかは、Web サーバーが実際のアプリケーション サーバーのフロント エンドとして機能し、要求をそれに渡すことです。

于 2011-08-26T22:02:35.837 に答える
0

カスタム アクセス ログは、WAS 8.0.0.2 以降で使用できます。

あなたは新しいアイデアにオープンであるため、このブログ エントリで説明されているように、サーブレットのリクエスト メトリック機能を有効にすることができます。

リクエスト メトリックは、管理コンソールの [モニタリングとチューニング] > [リクエスト メトリック] で有効にできます。リクエスト メトリックを機能させるためにサーバーを再起動する必要はありません。

  1. 「リクエスト メトリック コレクション用にサーバーを準備する」がチェックされていることを確認します。
  2. 「実装するコンポーネント」で「カスタム」を選択し、「サーブレット」を選択
  3. 「トレース レベル」を「ホップ」に設定します。
  4. 「標準ログ」にチェックを入れる

リクエストごとに記録される情報は、この形式です

[9/26/11 15:43:45:448 PDT] 00000027 PmiRmArmWrapp I PMRM0003I: parent:ver=1,ip=10.20.30.8,time=1317075586068,pid=32507,reqid=1,event=1 - current:ver=1,ip=10.20.30.8,time=1317075586068,pid=32507,reqid=1,event=1 type=URI detail=/swat/Sleep elapsed=1004

elapsedフィールドはミリ秒単位の応答時間です。

于 2012-08-27T08:57:15.510 に答える
0

実用的な方法の 1 つは、独自のカスタマイズされたリクエスト ロガーの実装を作成することです。これは、標準のサーブレット API ServletRequestListener で WAS 機能の「グローバル Web コンテナー リスナー」を使用して実行できます。

疑似例を次に示します。

import javax.servlet.ServletRequest;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpServletRequest;

public class HttpServletRequestRequestListener implements ServletRequestListener {

ThreadLocal<Long> threadLocal = new ThreadLocal<Long>(); 

@Override
public void requestDestroyed(ServletRequestEvent aArg0) {
    HttpServletRequest tHttpServletRequest = getHttpServletRequest(aArg0.getServletRequest());
    if(tHttpServletRequest != null){
        Long tStart = threadLocal.get();
        long tCallDelay = -1;
        if(tStart != null){
            tCallDelay = System.currentTimeMillis() - tStart.longValue();
        }
        //In this class I will log the request including cookies etc. 
        // in my own customized format...
        MyCustomLogger.log(tHttpServletRequest,tCallDelay);
    }

}

@Override
public void requestInitialized(ServletRequestEvent aArg0) {
    long tStart = System.currentTimeMillis();
    threadLocal.set(tStart);

}

private static HttpServletRequest getHttpServletRequest(ServletRequest aServletRequest) {
    if (aServletRequest instanceof HttpServletRequest) {
        return (HttpServletRequest) aServletRequest;
    }
    return null;
}

}

さらに、webcontainer カスタム プロパティでは、listeners プロパティを使用してリスナーを指定する必要があります。

Webcontainer リスナーの構成方法の詳細については、http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2Fcom.ibm.websphere.base.doc%2Finfo%2Faes を参照してください 。 %2Fae%2Frweb_custom_props.html

于 2013-08-27T05:38:46.277 に答える
-1

プロパティのロギングと検出されたトレース ファイルの変更を参照してください。

http://publib.boulder.ibm.com/infocenter/wchelp/v6r0m0/index.jsp?topic=%2Fcom.ibm.commerce.admin.doc%2Ftasks%2Ftlslogging.htm

http://publib.boulder.ibm.com/httpserv/ihsdiag/WebSphere61.html#LOGも参照してください。

がんばれ、モー

于 2011-11-07T09:46:36.197 に答える