不要使用 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 定義的層次,您也可以在此 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 說明文件: