Apache Tomcat org.apache.juli.logging 사용 안함

이 규칙은 org.apache.juli.logging.Logorg.apache.juli.logging.LogFactory 클래스 및 메소드의 사용을 발견합니다. 이러한 로깅 메소드는 WebSphere traditional 또는 Liberty에서는 사용할 수 없으므로 마이그레이션해야 합니다.

소스 스캐너에서 빠른 수정사항을 사용할 수 있습니다. 빠른 수정사항은 org.apache.juli.logging.LogFactoryjava.util.logging.Logger로 대체합니다. 또한, Apache Tomcat 로깅 메소드를 Java Logger.log(Level, message) 메소드로 대체합니다.

Apache Tomcat 메소드 중 일부는 정의된 java.util.logging.Level에 직접 맵핑됩니다. 직접 맵핑되지 않는 레벨의 경우에는 분석 구성 대화 상자에서 해당 로그 레벨을 사용자 정의할 수 있습니다. 이외에도 빠른 수정사항은 클래스 import 문을 업데이트합니다.

빠른 수정사항에 의해 대체되는 메소드는 다음 맵핑 테이블에 표시되어 있습니다. 두 번째 매개변수로 Throwable을 전달하는 로그 메소드는 다음 테이블에서 대응하는 것과 동일한 방식으로 맵핑됩니다.

org.apache.juli.logging method java.util.logging method 구성 가능
LogFactory.getLog(Class.class) Logger.getLogger(Class.class.getName()) 아니오
LogFactory.getLog("log name") Logger.getLogger("log name") 아니오
LogFactory.getInstance(Class.class) Logger.getLogger(Class.class.getName()) 아니오
LogFactory.getInstance("log name") 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());

다음 예제에서는 두 번째 매개변수로 Throwable을 사용하는 org.apache.juli.logging.Log.error() 메소드에 대한 호출이 표시되어 있습니다.

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에 정의되어 있습니다. 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 이외 유형의 매개변수를 사용하는 경우에는 org.apache.juli.logging.Log에서 java.util.logging.Logger로 마이그레이션하는 빠른 수정사항을 실행한 후 수동 마이그레이션을 추가로 수행하여 매개변수에 toString()을 추가해야 합니다.

추가 정보는 다음 Java 문서를 참조하십시오.