Skip to content

[INFRA] 로그 파일 분리 #152

@bingle625

Description

@bingle625

🛠️ 작업/이슈 내용

Spring Boot 실서버 로그 파일 분리 설정
운영 서버에서 요청 로그, 애플리케이션 로그, 오류 로그 등을 분리 저장하여 유지보수 및 모니터링 효율성 향상

📍 작업/이슈 범위

  • Spring Boot
  • Docker (운영 컨테이너 환경)
  • logback-spring.xml (로그 설정 파일)
  • AWS EC2 (실서버 인스턴스)

📝 작업/이슈 상세

✅ 문제 상황

  • 실서버 환경에서 로그가 파일로 저장되지 않고 있음
  • 로그가 콘솔에만 출력되며, 지정된 로그 디렉토리(/logs/)에 로그 파일 생성되지 않음
  • 장애 추적 및 운영 모니터링에 심각한 어려움 발생

✅ 작업 절차

  1. logback-spring.xml 파일 생성 또는 수정
  2. 로그 유형별(ACCESS, ERROR, APP)로 패턴 정의 및 파일 경로 분리 설정
  3. application.yml에서 logging 설정 확인
  4. Docker 컨테이너에서 로그 경로 볼륨 마운트 및 권한 설정
  5. 실서버에서 로그파일 권한, logrotate 설정 등 점검

✅ 적용 예시 (logback-spring.xml 일부)

<appender name="ACCESS" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/logs/access.log</file>
    ...
</appender>

<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/logs/error.log</file>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <level>ERROR</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
    </filter>
</appender>

<logger name="org.springframework.web" level="INFO" additivity="false">
    <appender-ref ref="ACCESS"/>
</logger>

<root level="INFO">
    <appender-ref ref="APP"/>
    <appender-ref ref="ERROR"/>
</root>

🔗 참고 자료

스프링부트 로그 파일 적용
스프링부트 + 도커 + 로그 적용

🤔 기타

  • 선행해서 현재 스프링부트 어플리케이션 시간대가 한국이 아닌 문제부터 확인해주세요

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions