Cette règle détecte l'utilisation des méthodes et des classes org.apache.juli.logging.Log et org.apache.juli.logging.LogFactory. 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 org.apache.juli.logging.LogFactory par java.util.logging.Logger. Il remplace également les méthodes de consignation d'Apache Tomcat par la méthode Java Logger.log(Level, message).
Certaines méthodes d'Apache Tomcat sont directement mappées vers une méthode java.util.logging.Level particulière. Pour les niveaux qui ne sont pas mappés directement, vous pouvez personnaliser le niveau de consignation dans la boîte de dialogue Analysis Configuration. 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); |
| Logger log = Logger.getLogger(MyClass.class.getName()); |
L'exemple ci-après illustre un appel d'org.apache.juli.logging.Log.error() avec un élément Throwable comme deuxième paramètre.
|
catch (Exception e) { log.error("Un message d'erreur", e); } |
|
catch (Exception e) { log.log(Level.SEVERE, "Un message d'erreur", e); } |
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 :