Skip to content

Conversation

@JungYoonShin
Copy link
Member

@JungYoonShin JungYoonShin commented Mar 30, 2025

📄 Work Description

  • HTTP 요청/응답 로깅을 구현했습니다.

⚙️ ISSUE

📷 Screenshot

  • local 환경 콘솔 예시)

    • request
      로깅1
    • response
      로깅2
  • staging, prod는 머지하고 나서 ec2 접속해서 파일 잘 생성되는지 확인해봐야할 것 같아여!! 우선 staging 환경부터 머지하고 확인하겠습니다~

💬 To Reviewers

Profile별 요청/응답 로깅 전략

☑️Local 환경

  • 무조건 콘솔에 로그찍히게
    • 이유: 빠르게 문제 파악하고, 디버깅 및 테스트를 하는 게 우선시 되어야 한다고 생각
  • 로그 레벨: info

☑️Staging 환경

  • 로그 저장 위치: 파일(RollingFileAppender)에 저장
  • 파일 경로: /home/ubuntu/dev-logs/terning.log
  • 로그 패턴:
    • 날짜 시각 [스레드명] 로그레벨 로거명 [traceId] - 메시지
    • ex) 2025-03-30 14:21:03 [main] INFO com.example.SomeClass [NoTraceID] - Hello log
    • 참고로 traceId는 추적에 용이하도록 사용하고자 했으며, 하나의 요청/응답은 고유한 traceId를 가지게 됩니다.
  • 로그 레벨: INFO

☑️Prod 환경

  • 로그 저장 위치: 파일(RollingFileAppender)에 저장
  • 파일 경로: /home/ubuntu/prod-logs/terning.log
  • 로그 패턴:
    • 날짜 시각 [스레드명] 로그레벨 로거명 [traceId] - 메시지
    • ex) 2025-03-30 14:21:03 [main] INFO com.example.SomeClass [NoTraceID] - Hello log
  • 로그 레벨: INFO

🌀 Staging, Prod 환경에서의 롤링 동작 방식

  • 로그 기록 파일

    • 애플리케이션 실행 중에는 모든 로그가 terning.log 파일에 기록됩니다.
    • 경로: /home/ubuntu/dev-logs/terning.log
  • 롤링 조건

    • 매일 자정이 지나면, 기존의 terning.log 파일은 날짜가 붙은 파일로 변경되고,
    • 새로운 terning.log 파일이 생성되어 로그 기록을 이어갑니다.
  • 롤링된 파일 형식 예시

image
  • 보관 정책
    • staging 환경: 14일 / prod 환경: 30일
    • 14/30일이 지난 로그 파일은 자동으로 삭제됩니다.

⚡️YML 설정

  • 환경별로 아래처럼 yml파일에 아래 예시처럼 logback 설정을 해줘야하는데 요거 노션 페이지 하단에 정리해두었습니다!! ( ➡️ 노션)
logging:
  config: classpath:logback-local.xml

🔗 Reference

더 자세한 로깅 구현하면서 의사결정사항 및 구현 방식등은 빠르게 노션에 상세히 정리해서 공유드리겠슴당!!]

https://pgmjun.tistory.com/188
https://prohannah.tistory.com/182
https://velog.io/@0_0_yoon/ContentCachingRequestWrapper-ContentCachingResponseWrapper-wxndicpk

- 에러 파악시 더 용이하도록 세부적인 예외케이스를 추가했습니다
- profile별로 다른 로깅 전략을 가져가므로, 파일을 따로 구성했습니다.
@JungYoonShin JungYoonShin added the ✨ feat 새로운 기능 추가 label Mar 30, 2025
@JungYoonShin JungYoonShin self-assigned this Mar 30, 2025
@JungYoonShin JungYoonShin changed the title [FEAT] HTTP 요청/응답 로깅 구현 [✨ feat] HTTP 요청/응답 로깅 구현 Mar 30, 2025
Copy link
Member

@jsoonworld jsoonworld left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

전체적으로 어느 수준까지 로그를 보여줄지, 어떤 에러까지 잡아야 할지 많이 고민하셨을 것 같아요.
너무 많은 정보를 보여주면 오히려 가시성이나 성능에 영향을 줄 수 있어서 쉽지 않은 선택이었을 텐데,
코드 곳곳에서 그런 고민이 잘 녹아있는 게 느껴져서 인상 깊었습니다! 👏

저는 궁금했던 부분 위주로 몇 가지 코멘트를 남겨보았는데요,
편하게 읽어보시고 의견 주시면 감사하겠습니다 🙏

정말 고생 많으셨습니다! 😊

@JungYoonShin JungYoonShin merged commit 61e45e5 into develop Apr 1, 2025
1 check passed
@JungYoonShin JungYoonShin deleted the feat/#201 branch April 28, 2025 07:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ feat 새로운 기능 추가 size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[✨ feat] 로깅 시스템 구축(요청/응답 및 에러로그)

3 participants