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