Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

로거 설정 추가 #5

Merged
merged 3 commits into from
Sep 11, 2024
Merged

로거 설정 추가 #5

merged 3 commits into from
Sep 11, 2024

Conversation

skfk286
Copy link
Collaborator

@skfk286 skfk286 commented Sep 11, 2024

📌 로그 설정 관리 파일 추가

  • properties/application.yml 에서 profile.active 설정 추가
  • properteis/logback-spring.xml 로그 관리 파일 추가

👩‍💻 요구 사항과 구현 내용

  1. 콘솔-로그 : 커스텀 로그 표시 설정, 로그 레벨을 설정하여 로그 구분
  2. 파일-로그 : 특정 디렉토리로 모든 로그 저장 및 관리 가능 (기능만 구현하고 임시 주석처리된 상태)
  3. 에러-로그 : 특정 디렉토리로 에러 로그만 저장 및 관리 기능 추가 (기능만 구현하고 임시 주석처리된 상태)

📚 **로그 설정 파일이 뭔가요 !?**

image

logback-spring.xml 설정 파일은 로그 출력과 관리에 대한 여러 이점을 제공합니다.

logback-spring.xml 설정 파일을 통한 핵심 관리 사항입니다.

  • 프로파일별 설정: localdev 등 다양한 환경에 맞춘 로그 경로 설정이 가능하여, 개발, 테스트, 운영 환경에서 다른 로그 파일을 저장할 수 있음.
    image

  • 자동 로그 롤링: 용량과 시간에 따른 로그 파일 관리가 가능하며, 오래된 로그 파일은 자동으로 삭제되고, 파일 크기 초과 시 압축 처리됨.
    image

  • 에러 로그 분리: 에러 로그를 별도의 파일로 분리해 관리, 에러에 대한 추적을 용이하게 함.
    image

  • 로그 색상 및 형식 커스터마이징: 콘솔 로그에 색상을 적용하여 가독성을 높이며, 로그 패턴을 지정하여 일관된 로그 형식 제공.
    image
    image
    image


윈도우 환경에서 다음과 같이 로그를 관리할 수 있습니다.

현재 xml 에는 Console 로그 설정, File(전체 로그) 저장, Error(에러 로그만) 저장에 대해서 기술되어 있습니다.
image


🛠️ xml 내의 주요 코드와 그 역할을 요약한 것입니다.

  1. Profile 별 설정
프로파일 로그 경로 로그 파일 이름 에러 로그 파일 이름
local /gc-coffee/log gc-coffee.log gc-coffee_err.log

각 환경(local, dev)에 따라 로그가 저장될 경로를 다르게 설정하며,
일반 로그 파일과 에러 로그 파일을 별도로 관리하여 유지 보수를 용이하게 합니다.

  1. Appender 설정
Appender 종류 출력 경로 로그 패턴 최대 파일 크기 최대 보관 기간
콘솔 콘솔 출력 색상이 적용된 패턴 해당 없음 해당 없음
파일 ${LOG_PATH}/gc-coffee.log 표준 파일 패턴 10KB 30일
에러 파일 ${LOG_PATH}/gc-coffee_err.log 표준 파일 패턴 1

콘솔: 콘솔에 로그를 출력하며, 가독성을 위해 색상이 적용된 패턴을 사용합니다.
파일: 로그 파일로 출력되며, 10KB를 초과하면 새로운 파일을 생성하고 30일 동안 로그를 보관합니다.
에러 파일: 에러 로그는 별도로 관리되며, 최대 60일간 보관 후 삭제됩니다.

  1. 로거 설정
로거 이름 로그 레벨
org.springframework WARN
org.hibernate WARN
com.zaxxer.hikari WARN
org.example.gc_coffee TRACE
ROOT DEBUG

각 로거의 로그 레벨을 설정하여 불필요한 로그 출력을 줄입니다.
Spring, Hibernate, HikariCP와 같은 주요 패키지는 WARN 레벨로 설정되어 경고 이상의 로그만 출력되며, 커스텀 로거 org.example.gc_coffee는 TRACE 레벨로 더 세밀한 로그를 기록합니다.
ROOT 로거는 전체적으로 DEBUG 레벨을 적용하여 애플리케이션 전반의 로그를 디버깅 용도로 출력합니다.

  1. 롤링 정책 설정
롤링 정책 최대 파일 크기 최대 보관 기간 전체 크기 제한
시간 및 크기 기반 롤링 10KB 30일 1GB

시간과 파일 크기를 기준으로 로그 파일이 관리되며, 파일이 10KB를 초과하면 새 파일이 생성됩니다.
최대 30일 동안 로그 파일을 보관하며, 전체 로그 파일 크기가 1GB를 넘으면 가장 오래된 파일부터 삭제합니다.

※ 각 프로젝트 환경에 맞게 로그 XML 내의 기술을 변경하여 활용하실 수 있습니다!

@skfk286 skfk286 merged commit 760e7fd into main Sep 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant