답변:
업데이트 : 봄 부팅 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
또는 application.yml
적용됩니다 (모듈 론 :
또는 =
문제-콜론이 효과가있는 것 같습니다).
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.:DEBUG
spring-boot 1.4.0
: logging.level.=DEBUG
응용 프로그램이 시작되지 않고 오류가 발생합니다 :java.lang.ClassCircularityError: java/util/logging/LogRecord
logging.level.
단지 편의 구문 지름길 logging.level.root
로 선호 될 수있다, (1) 오타과 혼동을 덜 경향, (2) 잠재적으로 더 명시하고, 작업 (3) =
더 전체적인 일관성을 제공 할당 기호, 구성 파일에.
루트 로깅 수준 을 설정하는 올바른 방법 은 속성을 사용하는 것 logging.level.root
입니다. 이 질문이 처음 제공된 이후 업데이트 된 documentation을 참조하십시오 .
예:
logging.level.root=WARN
응용 프로그램의 패키지 이름이로 가정합니다 com.company.myproject
. 그런 다음 아래 application.properties 파일에서 프로젝트 내부의 클래스에 대한 로깅 레벨을 설정할 수 있습니다.
logging.level.com.company.myproject = DEBUG
logging.level.org.springframework.web = DEBUG
및 logging.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
예를 들어 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 구성 파일 내에서 부팅을 위해 로깅을 구성하도록 설정되었습니다!
log4j.properties
.
레코드 : Spring Boot v1.2.0.RELEASE 및 Spring v4.1.3.RELEASE와 같은 공식 문서 :
로깅에 필요한 유일한 변경 사항이 다양한 로거의 레벨을 설정하는 것이라면 "logging.level"접 두부를 사용하여 application.properties에서이를 수행 할 수 있습니다.
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
"logging.file"을 사용하여 콘솔 외에 로그 할 파일 위치를 설정할 수도 있습니다.
로깅 시스템의보다 세밀한 설정을 구성하려면 해당 LoggingSystem에서 지원하는 기본 구성 형식을 사용해야합니다. 기본적으로 Spring Boot는 시스템의 기본 위치 (예 : Logback의 경우 classpath : logback.xml)에서 기본 구성을 선택하지만 "logging.config"속성을 사용하여 구성 파일의 위치를 설정할 수 있습니다.
더 자세하게 설정하려면 로그 구성 파일 이름 "logback.xml"또는 "logback-spring.xml"을 추가하십시오.
application.properties 파일에서 다음과 같이 입력하십시오.
logging.config: classpath:logback-spring.xml
loback-spring.xml에서 다음과 같이 입력하십시오.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="ROOT_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>sys.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/system.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="BUSINESS_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>TRACE</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>business.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/business.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="{project-package-name}" level="TRACE">
<appender-ref ref="BUSINESS_APPENDER" />
</logger>
<root level="INFO">
<appender-ref ref="ROOT_APPENDER" />
</root>
</configuration>
현재 설정에서 application.yaml에 다음 과 같이 정의되어 있습니다 .
logging:
level:
ROOT: TRACE
spring-boot : 2.2.0.RELEASE를 사용하고 있습니다. TRACE 레벨과 같은 패키지를 정의 할 수 있습니다.
스프링 부트 프로젝트에서 logging.level.root = WARN을 쓸 수 있지만 여기서 문제는 devtools 종속성을 추가해도 속성 파일에 값을 수정하면 자동 감지 할 수없는 속성 파일에 다시 시작해야한다는 것입니다. 해결책 i, 예를 들어 url.http : // localhost : 8080 / loggers / ROOT 또는 http : // localhost : 8080 / loggers / com의 우편 배달부 클라이언트에 표시된 것처럼 pom.xml에 액추에이터를 추가하고 로거 레벨을 전달할 수 있습니다 . .mycompany 및 본문에서 아래와 같이 json 형식을 전달할 수 있습니다.
{
"configuredLevel": "WARN"
}
Eclipse IDE 및 프로젝트가 maven 인 경우 변경 사항을 반영하도록 프로젝트를 정리하고 빌드해야합니다.
Springboot 2를 사용하면 다음과 같이 환경 변수를 사용하여 루트 로깅 수준을 설정할 수 있습니다.
logging.level.root=DEBUG
또는 다음과 같이 패키지에 대한 특정 로깅을 설정할 수 있습니다.
logging.level.my.package.name=TRACE
LOGGING_LEVEL_ROOT=DEBUG
경우 낙타 사례 구문을 사용하여 다음 을 사용하십시오.
Settings
->Config Vars
집합logging.level.com.yourpackage
이 원하는 레벨 (INFO, ERROR, DEBUG)이다.