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

Toto pravidlo zjistí použití tříd a metod org.apache.juli.logging.Log a org.apache.juli.logging.LogFactory. 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 soubor třídu org.apache.juli.logging.LogFactory třídou java.util.logging.Logger. Nahrazuje také metody protokolování Apache Tomcat metodou Java Logger.log(Level, message).

Některé z metod Apache Tomcat jsou mapovány přímo na definovanou metodu java.util.logging.Level. Pro úrovně, které nejsou mapovány přímo, můžete úroveň protokolování upravit 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 zobrazuje volání org.apache.juli.logging.Log.error() s parametrem 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é. Chcete-li například migrovat metodu Log.trace na úroveň jinou než WsLevel.DETAIL, můžete ji změnit v dialogovém okně Konfigurace analýzy.
  2. Úroveň WsLevel je definována ve třídě IBM(R), com.ibm.websphere.logging.WsLevel. Rozšiřuje java.util.logging.Level pro poskytnutí dalších úrovní protokolu. Nechcete-li použít definované úrovně WsLevel, můžete tato mapování také konfigurovat v dialogovém okně Konfigurace analýzy pod tímto pravidlem Tomcat Java.
  3. Nejsou migrovány všechny metody LogFactory. Po migraci základních metod protokolování můžete provést další ruční migraci. Vyhodnoťte jakékoli další použití metod LogFactory 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: