로깅은 서버에서 중요한 처리 중 하나로써 어떤 일들이 일어나고 있는지 알 수 있고, 버그나 의도하지 않은 동작 등이 있을 때 빠르게 원인을 파악할 수 있다. 단순히 로깅은 디버깅용으로 개발자가 에러나 테스트 중 사용하는 용도 뿐 아니라 굉장히 광범위하게 사용할 수 있다.
데이터베이스 접속 기록 , 사용자 행동 로그 등 많은 것들을 로그로 저장해놓을 필요가 있다. 아래의 예를 간단히 보자.
- 서버 : 특정 API의 Request , Respone 정보를 기록함. 클라이언트나 웹에서 API 호출할 경우 저장함
- 앱(IOS/Android) : 로그인을 하며, 화면에서 유저가 어떤 화면에 진입했는지, 어떤 버튼을 클릭했는지 등을 기록함
- 웹 : 로그인을 하며, 어떤 웹 페이지에 진입했고 어떤 버튼을 클릭했는지 등을 기록함
결국 사용자가 어떤 것을 샀고, 어떤 것을 팔았고, 레벨업을 언제 했는지 또는 서버에 요청을 했는지 다른 서버에서 어떤 데이터를 요청하는 등의 로그로 저장해놓는다. 나중에는 이런 데이터를 분석하여 데이터를 추출할 수 있게 말이다.
로그 수준
로깅의 수준 또한 중요하다. 어찌보면 로그의 처음을 보는 것은 수준일 수도 있을 것 같다. 많은 로그 중 Critical 또는 Warning을 먼저 보게되면 많이 당황스러울 수 있을 것 같다. 수준은 어딜가나 다른 것 같다. 그래서 내가 찾아보고 배운 내용을 대부분 다 적어봤다.
수준 | 내용 |
Critical | 서버 문제 또는 중요한 조건이 발생할 때마다 이벤트가 로그에 기록 |
Error | 오류 조건이 발생할 때마다 이벤트가 로그에 기록 - ex)클라이언트나 다른 서버에 대한 연결시도가 실패한 경우 |
Warning | 경고 조건이 발생할 때마다 이벤트가 로그에 기록 - ex)클라이언트가 보낸 통신을 서버가 인식할 수 없는 경우 |
Notice | 일반적으로 중요한 조건이 발생할 때마다 이벤트가 로그에 기록 |
Information | 서버 실행되는 모든 중요 작업에 대한 이벤트를 로그에 기록 - ex)클라이언트가 로그인 했거나 폴더를 이동시키는 이벤트의 경우 |
Debug | 가장 세밀한 로깅으로 디버깅 용도에만 적합하며 데이터의 흐름 또는 문제를 나타내기 위해 각 프로세스나 작업 내의 개별 단계에서 이벤트 로그를 기록 |
'IT > general' 카테고리의 다른 글
[네트워크] 쿠키? (0) | 2022.02.09 |
---|---|
[UUID] Universally Unique Identifiers - 범용 고유 식별자 (0) | 2022.02.09 |
SSL(Secure Sockets Layer) (0) | 2021.12.07 |
[방화벽] 기본 포트 차단 (0) | 2021.11.22 |
[VSCode] 원격 SSH 접속 (0) | 2021.10.08 |