Ne pas utiliser la classe org.apache.juli.logging d'Apache Tomcat j

Cette règle détecte l'utilisation du org.apache.juli.logging.Log et org.apache.juli.logging.LogFactory classes et méthodes. Ces méthodes de consignation ne sont pas disponibles dans WebSphere Traditional ou Liberty et doivent être migrées.

Un correctif rapide est disponible dans le scanner de source. Il remplace le org.apache.juli.logging.LogFactory avec java.util.logging.Logger . Elle remplace également les méthodes de journalisation Apache Tomcat par Java Logger.log(Level, message) .

Certaines des méthodes Apache Tomcat sont mappées directement à une java.util.logging.Level . Pour les niveaux qui ne sont pas mappés directement, vous pouvez personnaliser le niveau de journalisation dans la boîte de dialogue Configuration de l'analyse. De plus, le correctif rapide met à jour les instructions d'importation des classes.

Les remplacements effectués par le correctif rapide sont répertoriés dans la table de mappage ci-dessous. Les méthodes de consignation qui transmettent un élément Throwable comme deuxième paramètre sont mappées de la même façon que leurs homologues dans la table ci-après.

Méthode org.apache.juli.logging Méthode java.util.logging Configurable
LogFactory.getLog(Class.class) Logger.getLogger(Class.class.getName()) Non
LogFactory.getLog("log name") Logger.getLogger("log name") Non
LogFactory.getInstance(Class.class) Logger.getLogger(Class.class.getName()) Non
LogFactory.getInstance("log name") Logger.getLogger("log name") Non
Log.fatal("mgs") Logger.log(WsLevel.FATAL, "msg") Oui
Log.error("msg") Logger.log(Level.SEVERE, "msg") Oui
Log.warn("msg") Logger.log(Level.WARNING, "msg") Non
Log.info("msg") Logger.log(Level.INFO, "msg") Non
Log.debug("msg") Logger.log(WsLevel.DETAIL, "msg") Oui
Log.trace("msg") Logger.log(Level.FINE, "msg") Oui

Par exemple, la création d'une instance de classe de journal :

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

est migré vers
Logger log = Logger.getLogger(MyClass.class.getName());

Cet exemple illustre un appel à org.apache.juli.logging.Log.error() avec un Throwable comme second paramètre.

catch (Exception e) {
log.error("Un message d'erreur", e);
}

Il est migré vers le code suivant :
catch (Exception e) {
log.log(Level.SEVERE, "Un message d'erreur", e);
}


Remarques :
  1. Certaines migrations de méthode de consignation peuvent être configurées. Par exemple, si vous souhaitez Log.trace méthode à migrer vers un niveau autre que WsLevel.DETAIL , vous pouvez le modifier dans la boîte de dialogue Configuration de l'analyse.
  2. WsLevel est défini dans la classe IBM(R), com.ibm.websphere.logging.WsLevel . Elle s'étend java.util.logging.Level pour fournir des niveaux de journalisation supplémentaires. Si vous ne souhaitez pas utiliser le WsLevel niveaux définis, vous pouvez également configurer ces mappages dans la boîte de dialogue Configuration de l'analyse sous cette règle Java Tomcat .
  3. Pas tous LogFactory Les méthodes sont migrées. Il se peut que vous deviez procéder à des étapes de migration manuelle supplémentaires après la migration des méthodes de consignation de base. Evaluer toute utilisation supplémentaire de LogFactory dans votre application.
  4. Les méthodes de la classe org.apache.juli.logging.Log possèdent des paramètres du type java.lang.Object. Les méthodes de la classe java.util.logging.Logger possèdent des paramètres du type java.lang.String. Si vous utilisez des paramètres avec des types autres que java.lang.String, vous devrez peut-être effectuer une migration manuelle supplémentaire pour ajouter toString() aux paramètres après l'exécution du correctif rapide pour migrer de org.apache.juli.logging.Log vers java.util.logging.Logger.

Pour plus d'informations, voir la documentation Java suivante :