Essa regra detecta o uso das classes e dos métodos org.apache.juli.logging.Log e org.apache.juli.logging.LogFactory. Esses métodos de criação de log não estão disponíveis no WebSphere tradicional ou no Liberty e devem ser migrados.
Há uma correção rápida disponível no scanner de origem. Ela substitui o org.apache.juli.logging.LogFactory por java.util.logging.Logger. Isso também substitui os métodos de criação de log do Apache Tomcat com o método Java Logger.log(Level, message).
Alguns dos métodos Apache Tomcat são mapeados diretamente para um java.util.logging.Level definido. Para os níveis que não são mapeados diretamente, é possível customizar o nível de log no diálogo de Configuração da Análise. Além disso, a correção rápida atualiza as instruções de importação de classe.
As substituições de correção rápida são mostradas nesta tabela de mapeamento. Os métodos de log que transmitem um Throwable como um segundo parâmetro são mapeados da mesma maneira que suas contrapartes na tabela a seguir.
| Método org.apache.juli.logging | Método java.util.logging | Configurável |
|---|---|---|
| LogFactory.getLog(Class.class) | Logger.getLogger(Class.class.getName()) | Não |
| LogFactory.getLog("log name") | Logger.getLogger("log name") | Não |
| LogFactory.getInstance(Class.class) | Logger.getLogger(Class.class.getName()) | Não |
| LogFactory.getInstance("log name") | Logger.getLogger("log name") | Não |
| Log.fatal("mgs") | Logger.log(WsLevel.FATAL, "msg") | Sim |
| Log.error("msg") | Logger.log(Level.SEVERE, "msg") | Sim |
| Log.warn("msg") | Logger.log(Level.WARNING, "msg") | Não |
| Log.info("msg") | Logger.log(Level.INFO, "msg") | Não |
| Log.debug("msg") | Logger.log(WsLevel.DETAIL, "msg") | Sim |
| Log.trace("msg") | Logger.log(Level.FINE, "msg") | Sim |
Por exemplo, a criação da instância da classe de log:
| Log log = LogFactory.getLog(MyClass.class); |
| Log do Logger = Logger.getLogger (MyClass.class.getName ()); |
Este exemplo mostra uma chamada para org.apache.juli.logging.Log.error() com um Throwable como um segundo parâmetro.
|
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 têm parâmetros de tipo java.lang.Object.
Os métodos na classe java.util.logging.Logger têm parâmetros de tipo java.lang.String.
Se você usar parâmetros com tipos diferentes de java.lang.String, poderá precisar executar a migração manual adicional para incluir toString() nos parâmetros após executar a correção rápida para migrar de org.apache.juli.logging.Log para java.util.logging.Logger.
Para obter informações adicionais, consulte a documentação Java a seguir: