반응형
Spring boot 설정 및 log4j2 설정 방법은?
다음을 통해 스프링 로그를 제대로 작성하려면 어떻게 해야 합니까?log4j2
내가 가지고 있는 다른 의존관계(하이버네이트, Netty, Mina 등)와 함께?
저는 다양한 것들과 의존성의 조합을 시도했습니다.하지만 나는 스프링을 기록할 수 있고 다른 것은 할 수 없고, 아니면 스프링 외의 모든 것을 기록할 수 있습니다.
모든 종속 변수가 올바르게 기록되는 경우(그러나 Spring) 다음 오류가 발생합니다.
java.lang.NoSuchMethodError: org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(Lorg/apache/logging/log4j/core/config/ConfigurationSource;)Lorg/apache/logging/log4j/core/config/Configuration;
at org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.loadConfiguration(Log4J2LoggingSystem.java:167)
at org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.loadDefaults(Log4J2LoggingSystem.java:150)
at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:75)
at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:50)
at org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.initialize(Log4J2LoggingSystem.java:140)
at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:277)
at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:255)
at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:224)
at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:200)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121)
at org.springframework.boot.context.event.EventPublishingRunListener.publishEvent(EventPublishingRunListener.java:111)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:65)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:329)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:306)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174)
at com.myproject.MyProject.main(MyProject.java:XX)
이것은 나의build.gradle
종속성
dependencies {
// FIX engine
compile 'org.quickfixj:quickfixj-all:1.6.2'
compile 'org.apache.mina:mina-core:2.0.16'
// Web API
compile ('org.springframework.boot:spring-boot-starter-web:1.4.1.RELEASE') {
// Remove default Spring loggers (where logback takes precedence)
exclude module: 'spring-boot-starter-logging'
}
// Logging
compile 'org.apache.logging.log4j:log4j-api:2.7'
compile 'org.apache.logging.log4j:log4j-core:2.7'
compile 'commons-logging:commons-logging:1.2' // for Spring logging
compile 'org.apache.logging.log4j:log4j-web:2.7' // for Spring logging
compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.7' // for Hibernate logging
// ORM and Database Driver
compile 'org.hibernate:hibernate-core:5.2.4.Final'
compile 'org.postgresql:postgresql:9.4.1209'
// Key-value store
compile 'biz.paluch.redis:lettuce:4.1.2.Final'
// Testing
// The Groovy language
compile 'org.codehaus.groovy:groovy-all:2.4.6'
// Spock testing framework
testCompile 'org.spockframework:spock-core:1.0-groovy-2.4'
}
그런 다음 로깅 종속성을 제거하고 아래에 종속성을 추가합니다.
compile 'org.springframework.boot:spring-boot-starter-log4j2:1.4.1.RELEASE'
스프링 로깅은 작동하지만 다른 디프 로깅은 작동하지 않습니다.
여기가.main
메소드(특별한 것은 아님)
public static void main(String[] args) {
// Fine tune a few logging settings so they don't log with TRACE or DEBUG levels.
Configurator.setLevel("org.hibernate", Level.ERROR);
Configurator.setLevel("org.jboss", Level.ERROR);
Configurator.setLevel("org.apache.mina", Level.ERROR);
Configurator.setLevel("io.netty", Level.ERROR);
Configurator.setLevel("quickfix.mina", Level.WARN);
Configurator.setLevel("com.lambdaworks", Level.WARN);
// ...
logger.info("FIX Controller started. Loading the API.");
SpringApplication.run(MyProject.class, args);
}
다시 말하지만, Spring을 제대로 로그에 기록하려면 어떻게 해야 할까요?log4j2
내가 가지고 있는 다른 의존성과 함께?
Spring Boot 1.4.1은 Log4J 2.6을 탑재하고 지원하지만 2.7을 사용하려고 합니다.유감스럽게도 이 커밋에서 만들어진 2.7의 API 변경 사항이 있기 때문에 작동하지 않습니다.이것이 원인입니다.NoSuchMethodError
당신이 보고 있는 것.
Log4J2 2.6.2로 다시 이동하면 문제가 해결됩니다.또는 Log4J 2.7을 사용하는 Spring Boot 1.5로 업그레이드할 수도 있습니다.
언급URL : https://stackoverflow.com/questions/40389512/how-to-set-up-spring-boot-and-log4j2-properly
반응형
'source' 카테고리의 다른 글
Excel을 위해 vba에서 다차원 배열 변수를 초기화하는 방법 (0) | 2023.09.13 |
---|---|
XML 파일을 XmlDocument로 읽기 (0) | 2023.09.13 |
Excel VBA 라인 컬러 / 마커 라인 컬러 (0) | 2023.09.13 |
패닉: AVD 시스템 경로가 끊겼습니다.ANDROD_SDK_ROOT 값 확인 (0) | 2023.09.13 |
Android에서 XML을 통해 EditText를 편집할 수 없게 만드는 방법? (0) | 2023.09.08 |