No utilizar org.apache.juli.logging de Apache Tomcat

Esta regla detecta el uso de las clases y los métodos org.apache.juli.logging.Log y org.apache.juli.logging.LogFactory. Estos métodos de registro cronológico no están disponibles en WebSphere tradicional o Liberty y deben migrarse.

Hay un arreglo rápido disponible en el explorador de orígenes. Sustituye org.apache.juli.logging.LogFactory por java.util.logging.Logger. También sustituye los métodos de registro cronológico de Apache Tomcat por el método Java Logger.log(Level, message).

Algunos de los métodos de Apache Tomcat se correlacionan directamente con un java.util.logging.Level definido. Para los niveles que no se correlacionan directamente, puede personalizar el nivel de registro en el diálogo Configuración de análisis. Asimismo, el arreglo rápido actualiza las sentencias de importación de clases.

Las sustituciones del arreglo rápido se muestran en esta tabla de correlación. Los métodos de registro que pasan Throwable como segundo parámetro se correlacionan de la misma manera que sus contrapartidas en la tabla siguiente.

Método org.apache.juli.logging Método java.util.logging Configurable
LogFactory.getLog(Class.class) Logger.getLogger(Class.class.getName()) No
LogFactory.getLog("log name") Logger.getLogger("log name") No
LogFactory.getInstance(Class.class) Logger.getLogger(Class.class.getName()) No
LogFactory.getInstance("log name") Logger.getLogger("log name") No
Log.fatal("mgs") Logger.log(WsLevel.FATAL, "msg")
Log.error("msg") Logger.log(Level.SEVERE, "msg")
Log.warn("msg") Logger.log(Level.WARNING, "msg") No
Log.info("msg") Logger.log(Level.INFO, "msg") No
Log.debug("msg") Logger.log(WsLevel.DETAIL, "msg")
Log.trace("msg") Logger.log(Level.FINE, "msg")

Por ejemplo, la creación de la instancia de clase de registro:

Log log = LogFactory.getLog(MyClass.class);

se migra a
Logger log = Logger.getLogger(MyClass.class.getName());

Este ejemplo muestra una llamada a org.apache.juli.logging.Log.error() con Throwable como el segundo parámetro.

catch (Exception e) {
log.error("Some error message", e);
}

El ejemplo se migra al código siguiente:
catch (Exception e) {
log.log(Level.SEVERE, "Some error message", e);
}


Notas:
  1. Algunas de las migraciones de método de registro son configurables. Por ejemplo, si desea que el método Log.trace se migre a un nivel distinto de WsLevel.DETAIL, puede cambiarlo en el recuadro de diálogo Configuración de análisis.
  2. WsLevel se define en la clase IBM(R) com.ibm.websphere.logging.WsLevel. Amplía java.util.logging.Level para proporcionar niveles adicionales de registro. Si no desea utilizar los niveles definidos de WsLevel, puede configurar también las correlaciones en el recuadro de diálogo Configuración de análisis en esta regla Java de Tomcat.
  3. No todos los métodos LogFactory se migran. Es posible que deba realizar alguna migración manual adicional una vez migrados los métodos de registro cronológico básico. Evalúe cualquier uso adicional de los métodos LogFactory en la aplicación.
  4. Los métodos de la clase org.apache.juli.logging.Log tienen parámetros del tipo java.lang.Object. Los métodos de la clase java.util.logging.Logger tienen parámetros del tipo java.lang.String. Si utiliza parámetros cuyo tipo no sea java.lang.String, debe realizar una migración manual adicional para añadir toString() a los parámetros después de ejecutar el arreglo rápido a fin de migrar desde org.apache.juli.logging.Log a java.util.logging.Logger.

Para obtener información adicional, consulte la siguiente documentación Java: