우아한테크코스/레벨4, 레벨5
[팀 프로젝트] 로깅 설정 개선하기
nauni
2021. 10. 2. 14:05
기존 설정해 놓은 로깅 설정을 확인하고 개선할 부분이 있는지 확인하였다.
- 설정파일을 좀 더 가독성 좋게 분리
- gradle dependency를 줄임
- dev 서버에도 cloudwatch 모니터링을 도입
- 기존 파일로 저장되던 로그파일 구조 개선
- 백업 디렉토리를 생성하여 당일 로그파일과 과거 로그파일을 분리
- 레벨별로 분리해주어 확인이 가능하도록 설정
수정내용
- 로그 패키지 구조
- appender 디렉토리 생성 후 로그 레벨별로 어펜터를 설정하여 추가
- appender 설정과 사용을 분리하여 logback-* 에서 include 하여 appender를 사용하는 방식으로 수정
- logback.xml의 삭제 (logback-spring에 설정내용 통합)
- 로그 저장 파일 구조
- 기존 logs 에 다같이 저장 -> logs에 당일 내용 저장, 자정이 지나면 backup 디렉토리로 이동
- 로그 레벨별로 저장하여 윗단의 로그부터 차례대로 확인이 가능
- 설정수정
- logback.xml, logback-spring.xml 로 나눠져있던 내용을 logback-spring.xml 로 통합
- 기존 logback 설정이 들어가고 logback-spring 설정이 실행되지 않고 있었음
- dependency 삭제
- AWS log appender --> (파일을 읽는 방식으로 변경)
- 분기로직 처리 의존성 제거 --> (SpringProfile 로 분기처리)
- 외부 dependency를 줄이고 기존에 기능을 최대한 활용
- 레벨별로 해당 레벨 이상 로그 파일 분리
- flyway 설정 삭제 -> flyway 설정 충돌로 애플리케이션이 실행되지 못하면 error 로그에 출력됨
- local, test: file저장 -> 콘솔에만 출력
- dev : INFO 레벨 이상 -> DEBUG 레벨이상
- prod, was1, was2: INFO 레벨 이상(저장되는 파일은 없었음) -> INFO레벨 이상 파일로 저장
- cloudwatch 에만 남는 로그보단 나중에 디버깅을 위해 로그 파일로도 남는 것이 좋다고 판단
- 해당 로그 레벨 이상을 출력하기 위해서는 Filter가 아닌 ThredholdFilter를 사용(Filter 는 exact 로 레벨을 거른다)
- logback.xml, logback-spring.xml 로 나눠져있던 내용을 logback-spring.xml 로 통합
4. dev서버에도 cloudwatch 설정
- 기존에는 main 서버만 cloudwatch 모니터링이 가능했으나 dev 서버도 cloudwatch 도입
- dev 서버에 cloudwatch agent 를 도입하여 설정 `/opt/aws/amazon-cloudwatch-agent/bin/config.json`