각 스프링 mvc 프로젝트 라이브러리는 자체 로깅 프레임 워크 즉, log4j, slf4j, logback, jboss-logging, commons-logging 등은 maven 통합과 함께 아래와 같습니다.
pom.xml
<log4j.version>1.6.5</log4j.version>
<slf4j.version>1.7.16</slf4j.version>
<slf4j.log4j13.version>1.0.1</slf4j.log4j13.version>
<logback.version>1.1.2</logback.version>
<jboss.logging.version>3.3.0.Final</jboss.logging.version>
<commons.logging.version>1.2</commons.logging.version>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>2.5</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>ant</groupId>
<artifactId>ant-jakarta-log4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j13</artifactId>
<version>${slf4j.log4j13.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
</dependencies>
다음은 프로젝트를 실행하는 동안 표시되는 심각한 오류입니다.
SLF4J : 클래스 경로에 여러 SLF4J 바인딩이 있습니다.
SLF4J : [jar : file : /WEB-INF/lib/log4j-slf4j-impl-2.5.jar! /org/slf4j/impl/StaticLoggerBinder.class]에서 바인딩을 찾았습니다.
SLF4J : [jar : file : /WEB-INF/lib/logback-classic-1.1.2.jar! /org/slf4j/impl/StaticLoggerBinder.class]에서 바인딩을 찾았습니다.
SLF4J : [jar : file : /WEB-INF/lib/slf4j-log4j12-1.7.12.jar! /org/slf4j/impl/StaticLoggerBinder.class]에서 바인딩을 찾았습니다.
SLF4J : [jar : file : /WEB-INF/lib/slf4j-log4j13-1.0.1.jar! /org/slf4j/impl/StaticLoggerBinder.class]에서 바인딩을 찾았습니다.
SLF4J : 실제 바인딩은 [org.apache.logging.slf4j.Log4jLoggerFactory] 유형입니다.
ERROR StatusLogger log4j2 구성 파일을 찾을 수 없습니다. 기본 구성 사용 : 콘솔에 오류 만 로깅합니다.
프로젝트를 포함하려면 각 로깅 프레임 워크가 필요합니다. 그러나 오류없이 프로젝트를 실행하는 동안 외부 라이브러리에 필요한 로깅 프레임 워크를 유지하는 트릭이 있습니까?
일반적으로 각각 다른 로깅 API를 사용하는 여러 구성 요소가 있습니다. 일반적으로 원하는 것은 특정 로깅 구현으로 각각을 바인딩하는 것입니다. 예를 들어 Spring은 commons-logging을 사용하므로 Log4j 2로 라우팅하려면 log4j-jcl jar를 포함합니다. 마찬가지로 SLF4J를 Log4j 2로 라우팅하려면 log4j-slf4j-impl jar를 포함합니다. 다른 로깅 구현이므로 Logback jar를 포함하지 않습니다. 위의 경우 오류가 발생하면 SLF4J에 대한 Log4j 2 SLF4J 바인딩, logback, log4j1.2 바인딩 및 log4j 1.3 바인딩이 있음을 보여줍니다. 그중 하나만 있어야하므로 사용하지 않으려는 항아리는 제거하십시오.
SLF4J는 Log4j 2 바인딩을 선택했다고 알려주지 만 Log4j 2에서 구성 파일을 찾을 수 없다는 오류가 발생합니다. 일반적으로 이것은 log4j2.xml입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다