不要使用 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 . 對於未直接對映的層次,您可以在「分析配置」對話框中自訂記載層次。 此外,快速修正程式會更新類別的 import 陳述式。

這個對映表顯示快速修正程式取代項目。 在下表中,會傳遞 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 類型的參數,則在執行快速修正程式以從 org.apache.juli.logging.Log 移轉至 java.util.logging.Logger 之後,可能需要執行額外的手動移轉,以將 toString() 新增至參數。

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