Non utilizzare Apache Tomcat org.apache.juli.logging

Questa regola rileva l'utilizzo del org.apache.juli.logging.Log e org.apache.juli.logging.LogFactory classi e metodi. 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 il org.apache.juli.logging.LogFactory indicando java.util.logging.Logger . Inoltre, sostituisce i metodi di registrazione Apache Tomcat con Java Logger.log(Level, message) metodo.

Alcuni dei metodi Tomcat di Apache sono associati direttamente ad un java.util.logging.Level . Per i livelli che non sono associati direttamente, è possibile personalizzare il livello di 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 Log.trace da migrare ad un livello diverso da WsLevel.DETAIL , è possibile modificarlo nella finestra di dialogo Configurazione analisi.
  2. WsLevel è definito nella classe IBM(R), com.ibm.websphere.logging.WsLevel . Si estende java.util.logging.Level per fornire ulteriori livelli di log. Se non si desidera utilizzare il WsLevel livelli definiti, è anche possibile configurare tali associazioni nella casella di dialogo Configurazione analisi in questa regola Tomcat Java .
  3. Non tutti LogFactory vengono migrate. È possibile eseguire ulteriori migrazioni manuali una volta che i metodi di registrazione di base sono stati migrati. Valutare l'eventuale uso aggiuntivo di 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: