Не использовать метод Apache Tomcat org.apache.juli.logging

Это правило обнаруживает использование org.apache.juli.logging.Log и org.apache.juli.logging.LogFactory классы и методы. Эти методы ведения протоколов недоступны в WebSphere traditional и Liberty и для них требуется выполнить миграцию.

Когда появится автоматизированное исправление, оно заменит org.apache.juli.logging.LogFactory с java.util.logging.Logger . Кроме того, он заменяет методы ведения протоколов Apache Tomcat на Java Logger.log(Level, message) метод.

Некоторые из методов Apache Tomcat отображаются непосредственно в определенный java.util.logging.Level . Для уровней, которые не отображаются напрямую, можно настроить уровень журнала в диалоговом окне конфигурации анализа.

Автоматические замены исправлений показаны в этой таблице сопоставления. Методы ведения протокола, передающие в качестве второго параметра значение Throwable, преобразуются аналогично соответствующим элементам в следующей таблице.

Метод org.apache.juli.logging Метод java.util.logging Настраиваемый
LogFactory.getLog(Class.class) Logger.getLogger(Class.class.getName()) Нет
LogFactory.getLog("og name") Logger.getLogger("log name") Нет
LogFactory.getInstance(Class.class) Logger.getLogger(Class.class.getName()) Нет
LogFactory.getInstance("имя протокола") Logger.getLogger("log name") Нет
Log.fatal("mgs") Logger.log(WsLevel.FATAL, "msg") Да
Log.error("msg") Logger.log(Level.SEVERE, "msg") Да
Log.warn("msg") Logger.log(Level.WARNING, "msg") Нет
Log.info("msg") Logger.log(Level.INFO, "msg") Нет
Log.debug("msg") Logger.log(WsLevel.DETAIL, "msg") Да
Log.trace("msg") Logger.log(Level.FINE, "msg") Да

Пример: создание экземпляра класса протокола:

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

заменяется на
Logger log = Logger.getLogger(MyClass.class.getName());

В этом примере показан вызов org.apache.juli.logging.Log.error() с Throwable в качестве второго параметра.

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

Пример заменяется на следующий код:
catch (Exception e) {
log.log(Level.SEVERE, "Some error message", e);
}


Примечания:
  1. Некоторые из операций миграции методов ведения протоколов можно настроить. Например, если вы хотите, чтобы Log.trace метод, который нужно перенести на уровень, отличный от WsLevel.DETAIL , можно изменить его в диалоговом окне Конфигурация анализа.
  2. WsLevel определяется в классе IBM(R), com.ibm.websphere.logging.WsLevel . Он расширяет java.util.logging.Level для предоставления дополнительных уровней журнала. Если вы не хотите использовать WsLevel заданных уровней, можно также сконфигурировать эти отображения в диалоговом окне Конфигурация анализа в соответствии с этим правилом Tomcat Java .
  3. Не все LogFactory методы переносятся. После миграции основных методов ведения протоколов может потребоваться дополнительная миграция, выполняемая вручную. Оценить любое дополнительное использование LogFactory методы в приложении.
  4. Методы класса org.apache.juli.logging.Log имеют параметры с типом java.lang.Object. Методы класса java.util.logging.Logger имеют параметры с типом java.lang.String. Если вы используете параметры с типами, отличными от java.lang.String, вам может потребоваться дополнительная ручная миграция для добавления toString( ) к параметрам после выполнения автоматического исправления будет выполнена миграция с org.apache.juli.logging.Log на java.util.logging.Logger.

Дополнительная информация приведена в следующей документации по Java: