不要使用 Apache Tomcat org.apache.juli.logging

此規則會偵測是否使用 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 . 對於無法直接對應的層級,您可以 自訂分析組態對話框中的記錄層級。

此對應表中顯示了自動固定替換。 在下表中,會傳遞 Throwable 作為第二個參數的記載方法,會以其對應項目的相同方式來對映。

org.apache.juli.logging 方法 java.util.logging 方法 可配置
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());

此範例顯示呼叫 org.apache.juli.logging.Log.error() Throwable 作為第二個參數。

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 定義的層級,您也可以在此 規則下的 Analysis Configuration Tomcat Java 對話方塊中配置這些映射。
  3. 並非全部 LogFactory 方法進行移轉。 在移轉基本的記載方法之後,您可能需要進行其他的手動移轉。 評估任何額外使用 LogFactory 方法。
  4. org.apache.juli.logging.Log 類別中的方法具有類型為 java.lang.Object 的參數。 java.util.logging.Logger 類別中的方法具有類型為 java.lang.String 的參數。 如果您使用的參數類型不是 java.lang.String, 類型以外的參數,您可能需要執行額外的手動轉換,在參數中加入 toString( ) 到參數中。 將從 org.apache.juli.logging.Log 遷移到 java.util.logging.Logger.

如需相關資訊,請參閱下列的 Java 說明文件: