Ne használja az Apache Tomcat org.apache.juli.logging csomagját

Ez a szabály az org.apache.juli.logging.Log és org.apache.juli.logging.LogFactory osztályok és metódusok használatát észleli. Ezek a metódusuk a hagyományos WebSphere és Liberty kiszolgálón nem állnak rendelkezésre, ezért át kell azokat venni.

A forráselemzőben rendelkezésre áll egy gyorsjavítás. Ez lecseréli az org.apache.juli.logging.LogFactory osztályt a java.util.logging.Logger osztályra. Lecseréli továbbá az Apache Tomcat naplózási metódusokat is a Java Logger.log(Level, message) metódusokra.

Az Apache Tomcat metódusok némelyike közvetlenül leképezhető egy meghatározott java.util.logging.Level osztályra. A közvetlenül le nem képezhető szintek esetében az Elemzés beállítása párbeszédablakban szabhatja személyre a naplózási szintet. Ezenkívül a gyorsjavítás frissíti az osztály importálási utasításokat is.

A gyorsjavítás cseréit a következő leképezési táblázat tartalmazza. A második paraméterként Throwable-t átadó napló metódusok ugyanúgy kerülnek leképezésre, mint az alábbi táblázatban látható megfelelőik.

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

Például a naplóosztály példányának létrehozása:

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

erre lesz átállítva:
Logger log = Logger.getLogger(MyClass.class.getName());

Ebben a példában az org.apache.juli.logging.Log.error() hívása látható, amelynek második paramétere Throwable.

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

Ez a példa az alábbi kódra lesz átállítva:
catch (Exception e) {
log.log(Level.SEVERE, "Some error message", e);
}


Megjegyzések:
  1. Néhány napló metódus átállítása konfigurálható. Ha például a Log.trace metódust a WsLevel.DETAIL szinttől eltérő szintre kívánja átállítani, akkor az Elemzés beállítása párbeszédablakban módosíthatja azt.
  2. A WsLevel a com.ibm.websphere.logging.WsLevel IBM(R) osztályban van meghatározva. A java.util.logging.Level kiterjesztésével ad további naplószinteket. Ha nem kívánja használni a WsLevel által meghatározott szinteket, akkor beállíthatja ezeket a leképezéseket az Elemzés beállítása párbeszédablakban is ezen Tomcat Java szabály alatt.
  3. Nem minden LogFactory metódus kerül átállításra. Lehet, hogy az alapvető naplózási metódusok átállítása után további kézi átállítást is kell végeznie. Értékelje ki a LogFactory metódusok további felhasználását alkalmazásában.
  4. Az org.apache.juli.logging.Log osztályban található metódusok java.lang.Object típusú paraméterekkel rendelkeznek. A java.util.logging.Logger osztályban található metódusok java.lang.String típusú paraméterekkel rendelkeznek. Ha nem java.lang.String típusú paramétereket használ, akkor lehet, hogy további kézi átállítás segítségével hozzá kell adnia a toString() metódust a paraméterekhez, miután a gyorsjavítás futtatásával az org.apache.juli.logging.Log osztályról áttért a java.util.logging.Logger osztályra.

További információkat a következő Java dokumentációkban talál: