Liberty でのフィーチャーのトレースおよびロギングの構成

Liberty フィーチャーに対して、Liberty のトレースおよびロギングのメカニズムを使用することができます。ロギング・サービスは Liberty カーネルの一部であるため、このサービスを使用するために server.xml ファイル内でフィーチャーを指定する必要はありません。

このタスクについて

Liberty では、カスタマイズしたフィーチャー・コードにトレースおよびロギングを組み込むために、次の SPI を提供しています。
com.ibm.websphere.ras
com.ibm.websphere.ras パッケージは、ログ・メッセージとトレース・レコードにクラスを提供するほか、いくつかの拡張ポイントも提供します。 通常、フィーチャー・コードは、java.util.logging パッケージを使用してトレースおよびメッセージをログに記録したり、Liberty ロギング構成により出力を制御したりすることができます。しかし、WebSphere® パッケージの拡張機能が役立つこともあり、トレースが使用不可の場合はトレース・ガードの方が若干効率的です。
com.ibm.websphere.ras.annotations
com.ibm.websphere.ras.annotations パッケージは、他のパッケージ内でクラスと共に使用するアノテーションを提供します。例えば、@Sensitive アノテーションを使用すると、アノテーション付きの変数のコンテンツがトレース出力またはメッセージ出力で表示されないようにすることができます。
com.ibm.ws.ffdc
com.ibm.ws.ffdc パッケージは、予期しない例外のデバッグを支援するため、初期障害データ・キャプチャー機能 (FFDC) のレコードを書き込む機能を提供します。
com.ibm.wsspi.logging
com.ibm.wsspi.logging パッケージは、ログ・レコードと FFDC レコードのインターセプト・ポイントを提供します。

各 Liberty SPI の Java™ API 文書は、${wlp.install.dir}/dev ディレクトリーのいずれかの javadoc サブディレクトリー内の個別 .zip ファイル内にあります。

手順

以下のステップでは、myfeature というサンプルの Liberty フィーチャーで、Liberty のトレースおよびロギングのメカニズムを使用するように構成する方法を示します。

  1. フィーチャー myfeature のメッセージ・ファイルのロケーションと、 com.ibm.websphere.ras.TraceComponent クラスに必要なグループの名前を指定します。
    import java.util.ResourceBundle;
    
    public class myFeatureConstants {
    
        public static final String TR_RESOURCE_BUNDLE = 
            "com.mycompany.myFeature.internal.resources.FeatureMessages";
    
        public static final String TR_GROUP = "myFeature";
    
        public static final ResourceBundle messages = ResourceBundle.getBundle(TR_RESOURCE_BUNDLE);
    
    }
  2. フィーチャー・サービス・コードの実装クラスで、com.ibm.websphere.ras.TraceComponent クラスの register() メソッドを呼び出して、Liberty で提供されているトレース管理機能に実装クラスを登録します。その後、フィーチャーの DS メソッドをトラッキングするようにトレース管理機能を構成します。
    ...
    import com.ibm.websphere.ras.Tr;
    import com.ibm.websphere.ras.TraceComponent;
    
    
    public class myFeatureServiceImpl {
    
        private static final TraceComponent tc = Tr.register(myFeatureServiceImpl.class);
    
    
        protected void activate(ComponentContext cc, Map<String, Object> newProps) {
            if (tc.isDebugEnabled()) {
                Tr.debug(tc, "myFeatureComponentImpl activated"); }
    ...
  3. TraceOptions アノテーションを使用して、トレース・グループ名とメッセージ・バンドル名を指定します。
    @TraceOptions(traceGroup = myFeatureConstants.TR_GROUP, messageBundle = 
        myFeatureConstants.TR_RESOURCE_BUNDLE)
    package com.mycompany.myFeature;
    
    import com.ibm.websphere.ras.annotation.TraceOptions;
    import com.mycompany.myfeature.internal.myFeatureConstants;
    ...

トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_feat_logging.html