[SprinBoot] 로거(Logger) 커스터마이징
2022. 11. 6. 14:26ㆍJAVA/Spring
1. 커스텀 로그 설정 파일 사용
- Logback : logback-spring.xml
- Log4J2 : log4j2-spring.xml
- JUL(비추) : logging.properties
- Logback extension
- 프로파일 <springProfile name=”프로파일”>
- Environment 프로퍼티 <springProperty>
Logback 로거의 커스텀 로그 설정 파일 사용
- resources/logback-spring.xml 생성 및 파일 작성
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
<logger name="kr.yh" level="DEBUG"/>
<logger name="org.springframework.web" level="DEBUG"/>
</configuration>
- kr.yh 패키지의 발생 로그 레벨을 DEBUG로 설정
특정한 프로파일일 때만 로그를 남기기
<springProfile> 태그를 사용하여 특정한 프로파일일때만 사용자가 정의한 로그 설정을 활성화시킵니다. 예를 들어 dev 프로파일에서는 로그 레벨을 DEBUG 레벨로 찍을 수 있습니다.
<springProfile name="staging">
<!-- configuration to be enabled when the "staging" profile is active -->
</springProfile>
<springProfile name="dev | staging">
<!-- configuration to be enabled when the "dev" or "staging" profiles are active -->
</springProfile>
<springProfile name="!production">
<!-- configuration to be enabled when the "production" profile is not active -->
</springProfile>
Environment Properties
<springProperty> 태그를 사용하여 Logback의 사용을 위해 Spring Environment를 노출시킬 수 있습니다. Logback 설정을 application.properties 파일에서 설정하는 것보다 유용합니다.
<springProperty scope="context" name="fluentHost" source="myapp.fluentd.host"
defaultValue="localhost"/>
<appender name="FLUENT" class="ch.qos.logback.more.appenders.DataFluentAppender">
<remoteHost>${fluentHost}</remoteHost>
...
</appender>
2. 로거를 Logback에서 Log4j2로 변경하기
스프링 프레임워크는 기본적으로 Logback 로거를 사용합니다. 이를 Log4j2 로거로 변경합니다. 실습환경의 빌드 도구는 gradle 입니다.
1. logback과의 충돌 방지를 위해서 ‘spring-boot-starter-logging’ 모듈을 제외
configurations {
compileOnly {
extendsFrom annotationProcessor
}
all{
// logback과의 충돌 방지
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}
}
2. Log4j2 의존성을 추가
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
}
References
source code :https://github.com/yonghwankim-dev/springboot_study/tree/main/springboot_utilization
[인프런] 스프링 부트 개념과 활용
'JAVA > Spring' 카테고리의 다른 글
[SpringBoot] 스프링부트 통합테스트, 단위테스트 (0) | 2022.11.07 |
---|---|
[SpringBoot] OutputCaputre 테스트 유틸리티 (0) | 2022.11.06 |
[SprinBoot] 스프링부트 기본 로거 설정 (0) | 2022.11.06 |
[SpringBoot] 프로파일(Profile) (0) | 2022.11.01 |
[Spring][IoC] @Component와 컴포넌트 스캔(Component Scan) (0) | 2022.11.01 |