org.apache.juli.logging von Apache Tomcat nicht verwenden

Diese Regel erkennt die Verwendung der org.apache.juli.logging.Log und org.apache.juli.logging.LogFactory Klassen und Methoden. Diese Protokollierungsmethoden sind in WebSphere Traditional und Liberty nicht verfügbar und müssen migriert werden.

Es ist eine Schnellkorrektur im Quellenscanner verfügbar. Sie ersetzt die org.apache.juli.logging.LogFactory von java.util.logging.Logger . Sie ersetzt auch die Protokollierungsmethoden von Apache Tomcat durch Java . Logger.log(Level, message) Methode.

Einige der Apache Tomcat -Methoden werden direkt einer definierten java.util.logging.Level Für die Ebenen, die nicht direkt zugeordnet werden, können Sie die Protokollebene im Dialogfeld "Analysekonfiguration" anpassen. Außerdem aktualisiert die Schnellkorrektur die Anweisungen zum Importieren von Klassen.

Welche Ersetzungen von der Schnellkorrektur vorgenommen werden, können Sie der folgenden Zuordnungstabelle entnehmen. Protokollmethoden, die ein Element der Throwable-Klasse als zweiten Parameter übergeben, werden auf dieselbe Weise wie ihre Entsprechungen in der folgenden Tabelle zugeordnet.

Methode von org.apache.juli.logging Methode von java.util.logging Konfigurierbar
LogFactory.getLog(Class.class) Logger.getLogger(Class.class.getName()) Nein
LogFactory.getLog("Protokollname") Logger.getLogger("Protokollname") Nein
LogFactory.getInstance(Class.class) Logger.getLogger(Class.class.getName()) Nein
LogFactory.getInstance("Protokollname") Logger.getLogger("Protokollname") Nein
Log.fatal("mgs") Logger.log(WsLevel.FATAL, "msg") Ja
Log.error("msg") Logger.log(Level.SEVERE, "msg") Ja
Log.warn("msg") Logger.log(Level.WARNING, "msg") Nein
Log.info("msg") Logger.log(Level.INFO, "msg") Nein
Log.debug("msg") Logger.log(WsLevel.DETAIL, "msg") Ja
Log.trace("msg") Logger.log(Level.FINE, "msg") Ja

Die Erstellung einer Instanz der Protokollklasse

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

wird beispielsweise auf den folgenden Code migriert:
Logger log = Logger.getLogger(MyClass.class.getName());

Dieses Beispiel zeigt einen Aufruf an org.apache.juli.logging.Log.error() mit einem Throwable als zweiter Parameter.

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

Das Beispiel wird auf den folgenden Code migriert:
catch (Exception e) {
log.log(Level.SEVERE, "Some error message", e);
}


Anmerkungen:
  1. Die Migration einiger Protokollmethoden ist konfigurierbar. Zum Beispiel, wenn Sie die Log.trace Methode, die auf eine andere Version migriert werden soll als WsLevel.DETAIL , können Sie dies im Dialogfenster 'Analysekonfiguration' ändern.
  2. WsLevel ist in der Klasse IBM(R) definiert, com.ibm.websphere.logging.WsLevel . Es erweitert java.util.logging.Level um zusätzliche Protokollebenen bereitzustellen. Wenn Sie die WsLevel definierte Ebenen können Sie diese Zuordnungen auch im Dialogfenster "Analysekonfiguration" unter dieser Tomcat Java -Regel konfigurieren.
  3. Nicht alle LogFactory Methoden werden migriert. Nach der Migration der Basisprotokollierungsmethoden müssen Sie möglicherweise zusätzliche manuelle Migrationsschritte ausführen. Zusätzliche Verwendung von bewerten LogFactory Methoden in Ihrer Anwendung.
  4. Die Parameter der Methoden in der Klasse org.apache.juli.logging.Log sind vom Typ java.lang.Object. Die Parameter der Methoden in der Klasse java.util.logging.Logger sind vom Typ java.lang.String. Wenn Sie Parameter verwenden, die nicht vom Typ java.lang.String sind, sind nach der Schnellkorrektur für die Migration von org.apache.juli.logging.Log auf java.util.logging.Logger möglicherweise zusätzliche manuelle Migrationsschritte erforderlich, um toString zu den Parametern hinzuzufügen.

Weitere Informationen finden Sie in der folgenden Java-Dokumentation: