此規則會偵測是否使用 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") | 是 |
例如,所建立的記載類別實例:
此範例顯示呼叫 org.apache.juli.logging.Log.error() 使用 Throwable 作為第二個參數。
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 說明文件: