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.

Quando sarà disponibile una correzione automatica, sostituirà il file 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 vengono mappati direttamente, si può personalizzare il livello di log nella finestra di dialogo Configurazione analisi.

Le sostituzioni automatiche sono riportate nella tabella di mappatura. 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 parametri con tipi diversi da java.lang.String, potrebbe essere necessario eseguire un'ulteriore migrazione manuale per aggiungere il parametro toString( ) ai parametri dopo l'esecuzione della correzione automatica migrerà da org.apache.juli.logging.Log a java.util.logging.Logger.

Per ulteriori informazioni, consultare la seguente documentazione: