logo

로그 개선기

* 관련 기술 스택이 없습니다
emoji

• 기존 로그의 문제점으로는 불필요한 정보의 포함, 특정 유저를 나타낼 수 있는 아이디가 없음, 한 로그 당 여러 줄이 출력되는 구조 등이 있었으며, 이를 개선하기 위해 시간, traceId, userId, api + message를 담는 새로운 로그를 만들었다.
• 새로운 로그를 만들기 위해 LogTracer 클래스를 만들고, AOP를 사용하여 로그에 필요한 정보를 담았으며, Stateless 성질을 이용해 하나의 비즈니스 요청에만 같은 TraceId를 놓을 수 있게 하였다. 또한, 유저의 행동을 추적하기 위해 Jwt의 AccessToken에 userId claim을 만들었다.
• `getAccessToken` 메서드 호출 시 `userId`를 파라미터로 추가하고, `accessToken` `parse` 부분에서 `userId`가 제대로 들어갔는지 디버그를 통해 확인한다. 로그인과 같은 `accessToken`이 들어가지 않는 url에서는 `NullException`이 발생하는 문제를 `Security` 설정에서 `permitAll()` 되어있는 url에서 예외처리를 만들어 해결한다.
• 로그를 남길 때 JSON 형식으로 저장하도록 변경하였다. 이는 로그를 파싱해서 사용하기 위함이며, 로그를 활용할 때 JSON 형식이 유리하다. 이를 위해 `Build.gradle`에 `logback` 라이브러리를 추가하였다.

thumbnail
북마크
공유하기
신고하기
7분 분량
조회수 310
profile-image엄행어사
4달 전
Copyright © 2024. Codenary All Rights Reserved.