Não usar Apache Tomcat org.apache.juli.logging

Esta regra detecta o uso do org.apache.juli.logging.Log e org.apache.juli.logging.LogFactory classes e métodos. Esses métodos de criação de log não estão disponíveis no WebSphere tradicional ou no Liberty e devem ser migrados.

Quando uma correção automatizada estiver disponível, ela substituirá o org.apache.juli.logging.LogFactory com java.util.logging.Logger . Ele também substitui os métodos de criação de logs do Apache Tomcat pelo Java Logger.log(Level, message) .

Alguns dos métodos Apache Tomcat são mapeados diretamente para um java.util.logging.Level . Para os níveis que não são mapeados diretamente, você pode personalizar o nível de registro na caixa de diálogo Configuração de análise.

As substituições de correções automatizadas 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);

é migrada para
Logger log = Logger.getLogger(MyClass.class.getName());

Este exemplo mostra uma chamada para org.apache.juli.logging.Log.error() com um Throwable como o segundo parâmetro.

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

O exemplo é migrado para o código a seguir:
catch (Exception e) {
log.log(Level.SEVERE, "Some error message", e);
}


Notas:
  1. Algumas das migrações de método de log são configuráveis. Por exemplo, se você desejar o Log.trace método a ser migrado para um nível diferente de WsLevel.DETAIL , você poderia alterá-lo na caixa de diálogo Configuração da Análise...
  2. WsLevel é definido na classe IBM(R), com.ibm.websphere.logging.WsLevel . Ele estende java.util.logging.Level para fornecer níveis de log adicionais.. Se você não quiser usar o WsLevel níveis definidos, também é possível configurar esses mapeamentos na caixa de diálogo Configuração de análise sob esta regra Tomcat Java
  3. Não todos LogFactory são migrados. Você pode fazer com que a migração manual adicional seja executada depois que os métodos básicos de criação de log forem migrados. Avalie qualquer uso adicional de LogFactory em seu aplicativo.
  4. Os métodos na classe 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, talvez seja necessário fazer uma migração manual adicional para adicionar toString( ) aos parâmetros depois de executar a correção automatizada migrará de org.apache.juli.logging.Log para java.util.logging.Logger.

Para obter informações adicionais, consulte a documentação Java a seguir: