2017-11-22 1 views
0

내 응용 프로그램을 log4j에서 log4j2로 마이그레이션 중입니다. 이를 위해 log4j에 대한 jar 파일을 log4j2로 대체하고 해당 jar를 사용하도록 해당 API 호출을 업데이트했습니다.log4j2 마이그레이션 중 카산드라 종속성이 변경됨

우리는 또한 log4j API를 사용하는 종속성으로 slf4j-log4j12-1.7.6.jar가있는 cassandra noSQL db를 가지고 있습니다. slf4j-log4j12-1.7.6.jar을 log4j2와 호환되는 새로운 jar로 교체해야합니다. 누군가 올바른 항아리를 사용하도록 제안 할 수 있습니까?

캐산드라 구성 요소를 만드는 동안 예외가 발생합니다. java.lang.NoClassDefFoundError가 : 조직/아파치/log4j에/레벨 org.slf4j.LoggerFactory.bind (LoggerFactory.java:150)에서

조직에서

는보고 예외 SLF4J LoggerFactory 를 초기화하지 못했습니다 org.slf4j.LoggerFactory.getLogger에서 org.slf4j.LoggerFactory.getILoggerFactory (LoggerFactory.java:412)에서 .slf4j.LoggerFactory.performInitialization (LoggerFactory.java:124) (LoggerFactory.java:357)

답변

1

NoClassDefFound 오류가 SLF4J는 Log4j의 1.x에서 찾고 있음을 나타냅니다 slf4j-log4j12 jar를 Log4j 2의 log4j-slf4j-impl jar로 대체해야합니다.

0

이 해결 이제 log4j-to-slf4j-2.9.1.jar을 추가하고 slf4j-log4j12-1.7.6.jar을 제거하십시오.

아래의 링크가 도움이됩니다.

https://logging.apache.org/log4j/2.0/log4j-slf4j-impl/index.html

http://slf4j.42922.n3.nabble.com/trouble-migrating-from-log4j-1-2-to-log4j-2-0-td4025759.html

+1

log4j-to-slf4j-2.9.1.jar은 slf4j-log4j12-1.7.6.jar를 대체하지 않습니다. log4j-to-slf4j는 모든 로깅 호출을 log4j 2에서 SLF4J로 라우트합니다. slf4j-log4j12.1.7.6.jar의 올바른 대체는 log4j-slf4j-impl-2.9.1.jar입니다. – rgoers

관련 문제