내 세상

[Java] Log4j 1.x to Log4j 2 Migration - Converting to the Log4j 2 API 본문

Language/Java

[Java] Log4j 1.x to Log4j 2 Migration - Converting to the Log4j 2 API

sga8 2021. 12. 14. 11:05
728x90
반응형

https://logging.apache.org/log4j/2.x/manual/migration.html

 

Log4j – Migrating from Log4j 1.x

Copyright © 1999-2021 The Apache Software Foundation. All Rights Reserved. Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, and the Apache Logging project logo are trademarks of The Apache Software Foundation.

logging.apache.org

 

Converting to the Log4j 2 API (빨강색: 버전 1 관련, 파랑색: 버전 2 관련)

대체로 Log4j 1.x API를 Log4j2로 변경하는 것은 꽤나 쉬울 것이다. 많은 Log Statement에 수정이 필요하진 않다. 그러나, 아래 변경점에 대해서는 반드시 수정이 필요하다.

  1. 버전 1의 main package는 org.apache.log4j 이고, 버전 2의 main package는 org.apache.logging.log4j 이다.
  2. org.apache.log4j.Logger.getLogger()org.apache.log4j.LogManager.getLogger()로 변경해야한다.
  3. org.apache.log4j.Logger.getRootLogger() 또는 org.apache.log4j.LogManager.getRootLogger()org.apache.logging.log4j.LogManager.getRootLogger()로 변경해야한다.
  4. LoggerFactory를 사용하는 org.apache.log4j.Logger.getLogger()org.apache.log4j.spi.LoggerFactory를 제거해야한다. 그리고 Log4j 2의 확장 메커니즘 중 하나를 사용해야한다.
  5. org.apache.log4j.Logger.getEffectiveLevel()org.apache.logging.log4j.Logger.getLevel()로 변경해야한다.
  6. org.apache.log4j.LogManager.shutdown()을 삭제해야한다. 버전 2에서는 Log4j Core가 자동으로 JVM Shutdown hook을 진행하기 때문에 삭제되어야 한다.
  7. org.apache.log4j.Logger.setLevel() 또는 유사한 함수는 지원되지 않아 삭제해야 한다. 버전 2에서 동등한 기능이 org.apache.logging.log4j.core.config.Configurator.setLevel()로 제공된다. 그러나 Log4j 2 내부의 변경 사항에 취약할 수 있다.
  8. 적절하게 사용하기 위해선 applications이 String concatenation 대신에 parameterized messages를 사용하도록 변경해야 한다.
  9. org.apache.log4j.MDC 또는 org.apache.log4j.NDC는 thread context로 대체되었다.
728x90
반응형