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());

W tym przykładzie przedstawiono 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 Log.trace Metoda, która ma zostać zmigrowana do poziomu innego niż WsLevel.DETAIL , można ją zmienić w oknie dialogowym Konfiguracja analizy.
  2. WsLevel jest zdefiniowany w klasie IBM(R), com.ibm.websphere.logging.WsLevel . Rozszerza java.util.logging.Level w celu zapewnienia dodatkowych poziomów rejestrowania. Jeśli nie chcesz używać WsLevel zdefiniowane poziomy, można również skonfigurować te odwzorowania w oknie dialogowym Konfiguracja analizy w ramach tej reguły Tomcat Java .
  3. Nie wszystkie LogFactory Metody są migrowane. Po zmigrowaniu podstawowych metod rejestrowania może być konieczne przeprowadzenie dodatkowej migracji ręcznie. Należy ocenić ewentualne dodatkowe zastosowanie 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: