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.

Jakmile bude k dispozici automatická oprava, nahradí se tím 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 . U úrovní, které nejsou přímo mapovány, můžete přizpůsobit úroveň protokolu v dialogovém okně Konfigurace analýzy.

Automatické náhrady oprav jsou uvedeny v této mapovací tabulce. 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í org.apache.juli.logging.Log.error() s 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é. Pokud chcete například Log.trace metoda, která má být převedena na jinou úroveň než WsLevel.DETAIL , můžete ji změnit v Dialogové okno Konfigurace analýzy.
  2. WsLevel je definován ve třídě IBM (R), com.ibm.websphere.logging.WsLevel . Rozšiřuje java.util.logging.Level poskytnout další úrovně protokolu. Pokud nechcete použít WsLevel definované úrovně, můžete tato mapování také nakonfigurovat v nástroji Konfigurace analýzy v rámci tohoto pravidla 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 další použití 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. Pokud používáte parametry jiných typů než java.lang.String, bude možná nutné provést dodatečnou ruční migraci a přidat toString( ) k parametrům po spuštění automatické opravy bude migrovat z org.apache.juli.logging.Log na adresu java.util.logging.Logger.

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