この規則は、org.apache.juli.logging.Log および org.apache.juli.logging.LogFactory のクラスおよびメソッドの使用を検出します。 こうしたロギング・メソッドは WebSphere traditional および Liberty では使用できないため、マイグレーションする必要があります。
ソース・スキャナーでクイック・フィックスが使用可能です。クイック・フィックスは、org.apache.juli.logging.LogFactory を java.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); } |
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 に関する資料を参照してください。