Diese Regel erkennt die Verwendung der Klassen org.apache.juli.logging.Log und org.apache.juli.logging.LogFactory und deren 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 org.apache.juli.logging.LogFactory durch java.util.logging.Logger. Sie ersetzt auch die Protokollierungsmethoden von Apache Tomcat durch die Java-Methode Logger.log(Level, message).
Einige Apache-Tomcat-Methoden sind direkt einer definierten java.util.logging.Level zugeordnet. Für die Stufen, für die es keine direkte Zuordnung gibt, können Sie die Protokollstufe im Dialog "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); |
| Logger log = Logger.getLogger(MyClass.class.getName()); |
Das folgende Beispiel zeigt einen Aufruf von org.apache.juli.logging.Log.error() mit einem Element der Throwable-Klasse als zweiten Parameter.
|
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 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: