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); |
| 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); } |
|
catch (Exception e) { log.log(Level.SEVERE, "Some error message", e); } |
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: