请勿使用 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® 类中定义, 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 文档: