Skip to content

백엔드 로깅 전략

Moly edited this page Aug 8, 2024 · 9 revisions

로그, 로그 프레임워크 등이 무엇인지 헷갈린다면 로깅과 Logback에 대해 알아보아요. 확인하러 가기 !

백엔드 로깅 전략

고려한 로깅 프레임워크

사용한 로깅 프레임워크

Logback

  • spring에서 표준인 로깅 프레임워크
  • 별도의 추가 의존성 없이도 사용할 수 있음
  • 자동 리로딩 등 여러 기능을 제공

사용 이유

lms 요구사항: 서비스의 규모를 고려하여 러닝 커브가 큰 기술을 이용하여 구성하는 것 보다 간단하게나마 확인할 수 있는 정도로만 구성하기

현재 우리 서비스는 규모가 크지 않기 때문에 Logback을 사용해도 성능상 문제가 되지 않을 것이라 생각

또한, 별도의 의존성을 고려하지 않아도 이미 추가된 spring-boot-starter-web에 포함되어 있음. image

스프링 공식 문서 참고

Spring Boot has a LoggingSystem abstraction that attempts to configure logging based on the content of the classpath. If Logback is available, it is the first choice.

Spring Boot에는 클래스 경로의 내용을 기반으로 로깅을 구성하려고 시도하는 LoggingSystem 추상화가 있습니다. Logback을 사용할 수 있는 경우, 이것이 첫 번째 선택입니다.

어떤 로그를 남길 것인가

모든 로그에는 시간과 요청 식별값을 출력한다.

request 정보

  • 엔드포인트, http method, 요청 바디, 요청 헤더

response 정보

  • response status, 응답 소요시간, 응답 바디, 응답 헤더

에러 정보

  • 500대: 스택 트레이스
  • 500대를 제외한 에러: 예외 클래스명, 예외메시지

메서드 실행 정보

  • 실행된 메서드 이름 및 실행 시간

환경별 로그 전략

로컬 환경

콘솔에 출력

  • spring boot -> info
  • application logic -> trace
  • hibernate -> trace

개발 환경

파일로 출력 (ec2 파일 위치: /dev/spring-log/ 아래)

전체 -> info

운영 환경 (현재 분리되지 않은 환경으로, 논의 필요)

파일로 출력 (ec2 파일 위치: /prod/spring-log/ 아래)

전체 -> error

⚡️ 코드zap

프로젝트

규칙 및 정책

공통

백엔드

프론트엔드

매뉴얼

백엔드

기술 문서

백엔드

프론트엔드

회의록


Clone this wiki locally