<aside> 📖

학습 목표


1. 개발/운영 환경 설정 분리

개발 환경과 운영 환경에서는 로깅 목적과 중요도가 다릅니다. 예를 들어, 개발자는 디버깅을 위해 상세한 로그가 필요하지만, 운영 환경에서는 시스템 성능과 보안, 디스크 사용량을 고려해 최소한의 로그만 남기는 것이 바람직합니다.

이를 위해 Spring Boot에서는 @Profile이나 spring.profiles.active에 따라 환경을 구분하고, Logback 설정 파일에서 <springProfile>을 사용하여 환경별 설정을 나눌 수 있습니다.

1-1. 환경별 로깅 전략 분리 예제

📁 디렉토리 구조 예시

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