Apache Tomcat の org.apache.juli.logging を使用しない

この規則は、org.apache.juli.logging.Log および org.apache.juli.logging.LogFactory のクラスおよびメソッドの使用を検出します。 こうしたロギング・メソッドは WebSphere traditional および Liberty では使用できないため、マイグレーションする必要があります。

ソース・スキャナーでクイック・フィックスが使用可能です。クイック・フィックスは、org.apache.juli.logging.LogFactoryjava.util.logging.Logger に置き換えます。また Apache Tomcat のロギング・メソッドを Java Logger.log(Level, message) メソッドに置き換えます。

Apache Tomcat メソッドの一部は、定義された java.util.logging.Level に直接マップされます。 直接マップが行われないレベルの場合、「構成の分析」ダイアログでログ・レベルをカスタマイズすることができます。 さらに、クイック・フィックスがクラス・インポート・ステートメントを更新します。

クイック・フィックスによる置き換えは、以下のマッピング・テーブルに示されています。 2 番目のパラメーターとして Throwable を渡すロギング・メソッドは、以下のテーブルではその対応するものと同様にマップされます。

org.apache.juli.logging method java.util.logging method 構成可能
LogFactory.getLog(Class.class) Logger.getLogger(Class.class.getName()) いいえ
LogFactory.getLog("log name") Logger.getLogger("log name") いいえ
LogFactory.getInstance(Class.class) Logger.getLogger(Class.class.getName()) いいえ
LogFactory.getInstance("log name") Logger.getLogger("log name") いいえ
Log.fatal("mgs") Logger.log(WsLevel.FATAL, "msg") はい
Log.error("msg") Logger.log(Level.SEVERE, "msg") はい
Log.warn("msg") Logger.log(Level.WARNING, "msg") いいえ
Log.info("msg") Logger.log(Level.INFO, "msg") いいえ
Log.debug("msg") Logger.log(WsLevel.DETAIL, "msg") はい
Log.trace("msg") Logger.log(Level.FINE, "msg") はい

例えば、ログ・クラス・インスタンスの作成の場合:

Log log = LogFactory.getLog(MyClass.class);

これは、以下にマイグレーションされます。
Logger log = Logger.getLogger(MyClass.class.getName());

以下の例では、2 番目のパラメーターとして Throwable を使用した場合の org.apache.juli.logging.Log.error() の呼び出しを示しています。

catch (Exception e) {
log.error("Some error message", e);
}

この例は、以下のコードにマイグレーションされます。
catch (Exception e) {
log.log(Level.SEVERE, "Some error message", e);
}


注:
  1. ロギング・メソッドの一部のマイグレーションは構成可能です。例えば、Log.trace メソッドを WsLevel.DETAIL 以外のレベルにマイグレーションしたい場合、「構成の分析」ダイアログ・ボックスで変更できます。
  2. WsLevel は IBM(R) クラス com.ibm.websphere.logging.WsLevel で定義されます。 これは、追加のログ・レベルを提供するように java.util.logging.Level を拡張しています。WsLevel 定義のレベルを使用したくない場合は、この Tomcat Java 規則の下で、「構成の分析」ダイアログ・ボックスを使用してこうしたマッピングを構成することもできます。
  3. すべての LogFactory メソッドがマイグレーションされるわけではありません。 場合によっては、基本ロギング・メソッドのマイグレーション後に、追加の手動マイグレーションを行う必要があります。アプリケーション内の LogFactory メソッドの追加使用を評価してください。
  4. org.apache.juli.logging.Log クラス内のメソッドには、タイプ java.lang.Object のパラメーターがあります。java.util.logging.Logger クラス内のメソッドには、タイプ java.lang.String のパラメーターがあります。java.lang.String 以外のタイプのパラメーターを使用する場合は、クイック・フィックスを実行して org.apache.juli.logging.Log から java.util.logging.Logger にマイグレーションした後に、追加の手動マイグレーションを行って、そのパラメーターに toString() を追加する必要がある場合があります。

追加情報については、以下の Java に関する資料を参照してください。