<aside> 📖
학습 목표
개발 환경과 운영 환경에서는 로깅 목적과 중요도가 다릅니다. 예를 들어, 개발자는 디버깅을 위해 상세한 로그가 필요하지만, 운영 환경에서는 시스템 성능과 보안, 디스크 사용량을 고려해 최소한의 로그만 남기는 것이 바람직합니다.
이를 위해 Spring Boot에서는 @Profile이나 spring.profiles.active에 따라 환경을 구분하고, Logback 설정 파일에서 <springProfile>을 사용하여 환경별 설정을 나눌 수 있습니다.
📁 디렉토리 구조 예시
src
├── main
│ └── resources
│ ├── application.yml
│ ├── application-dev.yml
│ ├── application-test.yml
│ ├── application-prod.yml
│ └── logback-spring.yml
| 파일명 | 설명 |
|---|---|
| application.yml | 공통 설정 및 profile 활성화 설정 |
| application-dev.yml | 개발 환경 전용 설정 |
| application-test.yml | 테스트 환경 전용 설정 |
| application-prod.yml | 운영 환경 전용 설정 |
| logback-spring.yml | 환경 공통 및 프로필 기반 로깅 설정 |
📄 application.yml
spring:
profiles:
active: dev # 실행 시 기본 활성화 프로필 (dev)
📄 application-dev.yml
logging:
level:
root: DEBUG
com.example.myapp: DEBUG
org.hibernate: WARN
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
📄 application-test.yml
logging:
level:
root: INFO
com.example.myapp: INFO
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
📄 application-prod.yml
logging:
level:
root: WARN
com.example.myapp: INFO
file:
name: logs/myapp.log