Nu utilizaţi Apache Tomcat org.apache.juli.logging

Această regulă detectează utilizarea clasele şi metodele org.apache.juli.logging.Log şi org.apache.juli.logging.LogFactory. Aceste metode de jurnalizare nu sunt disponibile în WebSphere tradiţional sau Liberty şi trebuie să fie migrate.

În scanerul de sursă este disponibilă o corecţie rapidă. Aceasta înlocuieşte org.apache.juli.logging.LogFactory cu java.util.logging.Logger. De asemenea înlocuieşte metodele de jurnalizare Apache Tomcat cu metoda Java Logger.log(Level, message).

Unele dintre metodele Apache Tomcat definite se mapează în mod direct la java.util.logging.Level. Pentru nivelurile care nu se mapează direct, puteţi personaliza nivelul de jurnalizare în dialogul Analysis Configuration. În plus, corecţia rapidă actualizează instrucţiunile de import clase.

Înlocuirile corecţiei rapide sunt afişate în acest tabelă de mapare. Metodele de jurnalizare care transmit un Throwable ca al doilea parametru sunt mapate aşa cum sunt mapate şi corespondentele lor din următorul tabel.

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

De exemplu, crearea instanţei de clasă log:

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

este migrat la
Logger log = Logger.getLogger(MyClass.class.getName());

Acest exemplu arată un apel la org.apache.juli.logging.Log.error() cu un Throwable ca al doilea parametru.

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

Exemplul este migrat la următorul cod:
catch (Exception e) {
log.log(Level.SEVERE, "Some error message", e);
}


Note:
  1. Unele dintre migrările metodelor de jurnalizare sunt configurabile. De exemplu, dacă doriţi ca metoda Log.trace să fie migrată la un nivel diferit de WsLevel.DETAIL, l-aţi putea schimba în caseta de dialog Analysis Configuration.
  2. WsLevel este definit în clasa IBM(R), com.ibm.websphere.logging.WsLevel. Se extinde java.util.logging.Level pentru a furniza niveluri de jurnalizare suplimentare. Dacă nu doriţi să utilizaţi niveluri definite WsLevel, puteţi configura, de asemenea, aceste mapări în caseta de dialog Analysis Configuration sub această regulă Tomcat Java.
  3. Nu toate metodele LogFactory sunt migrate. Puteţi avea o migrare suplimentară manuală de făcut după ce sunt migrate metode de jurnalizare de bază. Evaluaţi orice utilizare suplimentară a metodelor LogFactory în aplicaţia dumneavoastră.
  4. Metodele din clasa org.apache.juli.logging.Log au parametri de tip java.lang.Object. Metodele din clasa java.util.logging.Logger au parametri de tip java.lang.String. Dacă folosiţi parametri cu tipuri diferite de java.lang.String, ar putea fi nevoie să faceţi o migrare manuală suplimentară pentru a adăuga toString() la parametri după rularea corecţiei rapide pentru a migra de la org.apache.juli.logging.Log la java.util.logging.Logger.

Pentru informaţii suplimentare, consultaţi următoarea documentaţie Java: