Nepoužívat Apache Tomcat org.apache.juli.logging

Toto pravidlo zjistí použití org.apache.juli.logging.Log a org.apache.juli.logging.LogFactory třídy a metody. Tyto metody protokolování nejsou k dispozici na serveru WebSphere traditional nebo Liberty a musí být migrovány.

Ve zdrojovém skeneru je k dispozici rychlá oprava. Nahrazuje org.apache.juli.logging.LogFactory s java.util.logging.Logger . Také nahrazuje metody protokolování Apache Tomcat za Java . Logger.log(Level, message) .

Některé metody Apache Tomcat se mapují přímo na definovanou java.util.logging.Level . Pro úrovně, které nejsou mapovány přímo, můžete upravit úroveň protokolování v dialogovém okně Konfigurace analýzy. Rychlá oprava kromě toho aktualizuje příkazy importu třídy.

Nahrazení rychlou opravou jsou zobrazena v tabulce mapování. Metody protokolu, které jako druhý parametr předávají metodu Throwable, jsou mapovány stejným způsobem jako jejich protějšky v následující tabulce.

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

Příklad: Vytvoření instance třídy protokolu:

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

je migrován do
Logger log = Logger.getLogger(MyClass.class.getName());

Tento příklad ukazuje volání na org.apache.juli.logging.Log.error() s pomocí Throwable jako druhý parametr.

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

Příklad je migrován do následujícího kódu:
catch (Exception e) {
log.log(Level.SEVERE, "Some error message", e);
}


Poznámky:
  1. Některé z migrací metod protokolu jsou konfigurovatelné. Například, pokud chcete Log.trace metoda, která má být migrována na jinou úroveň než WsLevel.DETAIL , můžete jej změnit v dialogovém okně Konfigurace analýzy.
  2. WsLevel je definována ve třídě IBM(R), com.ibm.websphere.logging.WsLevel . Rozšiřuje se java.util.logging.Level chcete-li poskytnout další úrovně protokolování. Pokud nechcete používat WsLevel definované úrovně můžete také nakonfigurovat tato mapování v dialogovém okně Konfigurace analýzy pod tímto pravidlem Tomcat Java .
  3. Ne všechny LogFactory metody jsou migrovány. Po migraci základních metod protokolování můžete provést další ruční migraci. Vyhodnoťte případné další použití LogFactory metody ve vaší aplikaci.
  4. Metody ve třídě org.apache.juli.logging.Log mají parametry typu java.lang.Object. Metody ve třídě java.util.logging.Logger mají parametry typu java.lang.String. Používáte-li parametry s jinými typy než java.lang.String, může být nutné provést další ruční migraci, abyste přidali metodu toString() do parametrů po spuštění rychlé opravy pro migraci z org.apache.juli.logging.Log na java.util.logging.Logger.

Další informace viz následující dokumentace Java: