Non utilizzare Apache Tomcat org.apache.juli.logging

Questa regola rileva l'utilizza delle classi e metodi org.apache.juli.logging.Log e org.apache.juli.logging.LogFactory. Questi metodi di registrazione non sono disponibili in WebSphere traditional o Liberty e devono essere migrati.

È disponibile una correzione rapida nello scanner di origine. Sostituisce org.apache.juli.logging.LogFactory con java.util.logging.Logger. Sostituisce anche i metodi di registrazione Apache Tomcat con il metodo Java Logger.log(Level, message).

Alcuni metodi Apache Tomcat si associano direttamente ad un java.util.logging.Level definito. Per i livelli che non si associano direttamente, è possibile personalizzare il livello del log nella finestra di dialogo Configurazione analisi. Inoltre, la correzione rapida aggiorna le istruzioni di importazione della classe.

Le sostituzioni della correzione rapida vengono mostrate in questa tabella di associazione. I metodi di log che superano un Throwable come secondo parametro vengono mappati nello stesso modo delle loro controparti nella seguente tabella.

org.apache.juli.logging method java.util.logging method Configurabile
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")

Ad esempio, la creazione dell'istanza della classe di log:

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

viene migrata in
Logger log = Logger.getLogger(MyClass.class.getName());

Questo esempio mostra una chiamata a org.apache.juli.logging.Log.error() con un Throwable come secondo parametro.

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

L'esempio è stato migrato al seguente codice:
catch (Exception e) {
log.log(Level.SEVERE, "Some error message", e);
}


Note:
  1. Alcune migrazioni del metodo log sono configurabili. Ad esempio, se si desidera migrare il metodo Log.trace ad un livello diverso da WsLevel.DETAIL, è possibile modificarlo nella finestra di dialogo Configurazione analisi.
  2. WsLevel viene definito nella classe IBM(R), com.ibm.websphere.logging.WsLevel. Estende java.util.logging.Level per fornire ulteriori livelli di log. Se non si desidera utilizzare i livelli definiti di WsLevel è possibile anche configurare queste associazioni nella finestra di dialogo Configurazione analisi in questa regola Java Tomcat.
  3. Non tutti i metodi LogFactory vengono migrati. È possibile eseguire ulteriori migrazioni manuali una volta che i metodi di registrazione di base sono stati migrati. Valutare l'utilizzo aggiuntivo dei metodi LogFactory nell'applicazione.
  4. I metodi nella classe org.apache.juli.logging.Log dispongono di parametri del tipo java.lang.Object. I metodi nella classe java.util.logging.Logger dispongono di parametri del tipo java.lang.String. Se si utilizzano i parametri con tipi diversi da java.lang.String, potrebbe essere necessario eseguire un'ulteriore migrazione manuale per aggiungere toString() ai parametri una volta eseguita la correzione rapida per migrare da org.apache.juli.logging.Log a java.util.logging.Logger.

Per ulteriori informazioni, consultare la seguente documentazione: