programing

application.yml에서 루트 로깅 수준을 설정합니다.

golfzon 2023. 3. 25. 12:04
반응형

application.yml에서 루트 로깅 수준을 설정합니다.

application.properties를 Spring Boot (1.3 M1)에서 사용했는데 점점 복잡해져서 yaml 파일로 변환하기 시작했습니다.

그러나 이것을 yaml로 변환하는 데 문제가 있습니다.

logging.level.*=WARN
logging.level.com.filenet.wcm=ERROR
logging.level.de.mycompany=DEBUG

마지막 2행은 쉽게 다음과 같이 번역됩니다.

logging:
    level:
        com.filenet.wcm: ERROR
        de.mycompany: DEBUG

그러나 루트 로깅 수준의 값을 추가하려면 어떻게 해야 합니까?다음 두 가지 접근법이 실패했습니다.

실패한 접근법 1:

logging:
    level: WARN
        com.filenet.wcm: ERROR
        de.mycompany: DEBUG    

실패한 접근법 2:

logging:
    level: 
        star: WARN
        com.filenet.wcm: ERROR
        de.mycompany: DEBUG    

문서를 읽고 stackoverflow를 검색하여 구글을 검색했지만 유효한 구문의 예를 찾을 수 없었습니다.

사용할 수 있습니다.ROOT루트 로깅레벨을 설정하려면 다음 순서를 수행합니다.

logging:
  level:
    ROOT: DEBUG

패키지별 레벨을 원하는 경우 다음 구문을 사용할 수 있습니다.

logging:
  level:
     org.springframework.web: DEBUG
     guru.springframework.controllers: DEBUG
     org.hibernate: DEBUG
     org: INFO

classname을 사용하여 로깅레벨을 설정할 수도 있습니다.

logging:
  level:
    com.yourorganization.Yourclass: DEBUG

오래된 질문이지만, 방금 문제가 생겼어요.

설정 중

org.springframework.web: debug

또는

org.hibernate: debug

는 정상적으로 동작합니다.프로젝트 파일(패키지별 레벨 설정)에 대해 같은 작업을 수행하려면 와일드카드를 사용해야 합니다.질문의 예로는 다음과 같습니다.

logging:
    level:
        root: WARN
        com.filenet.wcm.*: ERROR
        de.mycompany.*: DEBUG

또는 torina의 답변에 나타나 있듯이 와일드카드를 사용하지 않고 클래스별로 로깅 수준을 설정할 수 있습니다.

다음을 생성하여 수신 요청을 기록할 수 있습니다.CommonsRequestLoggingFilter추가

logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG

로.application.properties자세한 것은, https://www.baeldung.com/spring-http-logging 를 참조해 주세요.

@Configuration
public class RequestLoggingFilterConfig {

    @Bean
    public CommonsRequestLoggingFilter logFilter() {
        CommonsRequestLoggingFilter filter
          = new CommonsRequestLoggingFilter();
        filter.setIncludeQueryString(true);
        filter.setIncludePayload(true);
        filter.setMaxPayloadLength(10000);
        filter.setIncludeHeaders(false);
        filter.setAfterMessagePrefix("REQUEST DATA : ");
        return filter;
    }
}

언급URL : https://stackoverflow.com/questions/31290204/set-root-logging-level-in-application-yml

반응형