[logging] 스프링 부트 : application.properties로 로깅 레벨을 어떻게 설정할 수 있습니까?

이것은 매우 간단한 질문이지만 정보를 찾을 수 없습니다.
(아마도 Java 프레임 워크에 대한 지식이 심하게 부족합니다)

application.properties로 로깅 레벨을 설정하는 방법
로그 파일 위치 등?



답변

업데이트 : 봄 부팅 v1.2.0.RELEASE부터의 설정 application.properties또는 application.yml적용 않습니다. 참조 안내서 의 로그 수준 섹션 을 참조하십시오 .

logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR

이전 버전의 Spring Boot에서는 사용할 수 없습니다. 로깅 프레임 워크 (log4j, logback)에 대한 일반 구성 만 사용하면됩니다. 적절한 구성 파일 ( log4j.xml또는 logback.xml)을 src/main/resources디렉토리에 추가하고 원하는대로 구성하십시오.

--debug명령 행에서 애플리케이션을 시작할 때 지정하여 디버그 로깅을 사용할 수 있습니다 .

Spring Boot는 logback이 XML을 포함하여 baseback.xml 파일을 채색하는 등의 기본값을 구성 할 수 있는 좋은 출발점을 제공 합니다. (이것은 스프링 부트 의 기본 logback.xml 에서도 권장됩니다 .

<include resource="org/springframework/boot/logging/logback/base.xml"/>


답변

application.properties를 사용하여이를 수행 할 수 있습니다.

logging.level.=ERROR-> 루트 로깅 레벨을 오류로 설정합니다
…-
logging.level.=DEBUG> 루트 로깅 레벨을 DEBUG로

logging.file=${java.io.tmpdir}/myapp.log설정합니다.-절대 로그 파일 경로를 TMPDIR / myapp.log로

설정합니다. 프로파일을 사용한 로깅과 관련된 정상적인 기본 application.properties 세트는 다음과 같습니다. application.properties :

spring.application.name=<your app name here>
logging.level.=ERROR
logging.file=${java.io.tmpdir}/${spring.application.name}.log

application-dev.properties :

logging.level.=DEBUG
logging.file=

선호하는 IDE 내에서 개발할 때는 -Dspring.profiles.active=dev앱의 실행 / 디버그 구성에 VM으로 인수를 추가하기 만하면 됩니다.

출력을 로그 파일에 쓰지 않고 개발 중 프로덕션 및 디버그 로깅에만 오류가 발생합니다. 이것은 개발하는 동안 성능을 향상시킬 것입니다 (그리고 SSD 드라이브를 몇 시간 동안 절약 할 수 있습니다).


답변

루트 로깅 수준 을 설정하는 올바른 방법 은 속성을 사용하는 것 logging.level.root입니다. 이 질문이 처음 제공된 이후 업데이트 된 documentation을 참조하십시오 .

예:

logging.level.root=WARN


답변

응용 프로그램의 패키지 이름이로 가정합니다 com.company.myproject. 그런 다음 아래 application.properties 파일에서 프로젝트 내부의 클래스에 대한 로깅 레벨을 설정할 수 있습니다.

logging.level.com.company.myproject = DEBUG

logging.level.org.springframework.web = DEBUGlogging.level.org.hibernate = DEBUG스프링 프레임 워크 웹 및 최대 절전 모드 만의 클래스에 대한 로깅 수준을 설정합니다.

로깅 파일 위치를 설정하려면

logging.file = /home/ubuntu/myproject.log


답변

Spring Boot를 사용하는 경우 application.properties 파일에 다음 특성을 직접 추가 하여 로깅 레벨을 설정하고 로깅 패턴을 사용자 정의하며 외부 파일에 로그를 저장할 수 있습니다.

이들은 다른 로깅 레벨과 최소 << 최대의 순서입니다.

OFF << FATAL << ERROR << WARN << INFO << DEBUG << TRACE << ALL

# To set logs level as per your need.
logging.level.org.springframework = debug
logging.level.tech.hardik = trace

# To store logs to external file
# Here use strictly forward "/" slash for both Windows, Linux or any other os, otherwise, its won't work.
logging.file=D:/spring_app_log_file.log

# To customize logging pattern.
logging.pattern.file= "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"

이 링크를 통해 로그를보다 생생하게 사용자 정의하십시오.

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html


답변

debug=trueapplication.properties에 추가 하면 실제로 디버그 로깅을 사용할 수 있기 때문에 Dave Syer 팁을 좋아 하십시오.


답변

예를 들어 log4j와 같은 다른 로깅 프레임 워크를 사용하려는 경우 가장 쉬운 방법은 스프링 부츠 자체 로깅을 비활성화하고 자체적으로 구현하는 것입니다. 그렇게하면 하나의 파일 인 log4j.xml (내 경우) 내의 모든 로그 레벨을 구성 할 수 있습니다.

이를 위해서는 pom.xml에 해당 라인을 추가하기 만하면됩니다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
</dependency>

아마도 첫 번째 종속성이 있고 다른 두 개만 필요합니다. 이 예제는 log4j에만 적용됩니다.
그게 다야, 이제 log4j 구성 파일 내에서 부팅을 위해 로깅을 구성하도록 설정되었습니다!