Nie używaj pakietu org.apache.juli.logging produktu Apache Tomcat

Ta reguła wykrywa użycie org.apache.juli.logging.Log oraz org.apache.juli.logging.LogFactory klasy i metody. Te metody logging nie są dostępne na tradycyjnym serwerze WebSphere ani Liberty i należy je poddać migracji.

Gdy dostępna będzie automatyczna poprawka, zastąpi ona funkcję org.apache.juli.logging.LogFactory z java.util.logging.Logger . Zastępuje również metody rejestrowania Apache Tomcat językiem Java . Logger.log(Level, message) .

Niektóre metody serwera Apache Tomcat są odwzorowywane bezpośrednio na zdefiniowane java.util.logging.Level . W przypadku poziomów, które nie są mapowane bezpośrednio, można dostosować poziom dziennika w oknie dialogowym Analysis Configuration.

Automatyczne zamienniki poprawek są pokazane w tej tabeli mapowania. Metody Log, w których drugim przekazywanym parametrem jest Throwable, są odwzorowywane w taki sam sposób, jak ich odpowiedniki w poniższej tabeli.

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

Przykładowo, operacja tworzenia instancji klasy rejestrującej:

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

jest migrowana do
Logger log = Logger.getLogger(MyClass.class.getName());

Ten przykład pokazuje wywołanie org.apache.juli.logging.Log.error() z Throwable jako drugi parametr.

catch (Exception e) {
log.error("Jakiś komunikat o błędzie", e);
}

Przykład jest poddawany migracji do następującego kodu:
catch (Exception e) {
log.log(Level.SEVERE, "Jakiś komunikat o błędzie", e);
}


Uwagi:
  1. Niektóre migracje metod rejestrowania są konfigurowalne. Na przykład, jeśli chcesz Log.trace metoda do migracji na poziom inny niż niż WsLevel.DETAIL można zmienić w oknie dialogowym Konfiguracja analizy.
  2. WsLevel jest zdefiniowany w klasie IBM (R), com.ibm.websphere.logging.WsLevel . Rozszerza się java.util.logging.Level aby zapewnić dodatkowe poziomy dziennika. Jeśli nie chcesz używać WsLevel zdefiniowane poziomy, można również skonfigurować te mapowania w oknie dialogowym Konfiguracja analizy w tym oknie dialogowym Tomcat Java.
  3. Nie wszystkie LogFactory są migrowane. Po zmigrowaniu podstawowych metod rejestrowania może być konieczne przeprowadzenie dodatkowej migracji ręcznie. Ocena wszelkich dodatkowych zastosowań LogFactory w aplikacji.
  4. Metody w klasie org.apache.juli.logging.Log mają parametry typu java.lang.Object. Metody w klasie java.util.logging.Logger mają parametry typu java.lang.String. W przypadku użycia parametrów o typach innych niż java.lang.String, może być konieczna dodatkowa ręczna migracja w celu dodania toString( ) do parametrów po uruchomieniu automatycznej poprawki dokona migracji z org.apache.juli.logging.Log do java.util.logging.Logger.

Więcej informacji na ten temat można znaleźć w następującej dokumentacji języka Java: