Do Not Think!!!

Posted
Filed under 글로 기록하기
로그로 남기면 좋은 것들

1.6. Log Domains

로그를 남기는 이유는 몇가지로 분류될수 있습니다.

1.6.1. 개발 로그(Development Log)

개발자가 디버깅 및 흐름 추적을 위해 기록하는 내용입니다.보통 debug, trace레벨로 기록합니다.

1.6.2. 운영 로그(Maintenance Log)

운영에 관련된 로그입니다. 디스크가 꽉 찼거나, 인터페이싱 과정에서 타입아웃이 발생했거나 하는등 운영을 모니터링하기 위한 용도의 로그입니다. 보통 WARNING이나 ERROR로 기록됩니다.

1.6.3. 비지니스 로그(Business log)

비지니스적으로 의미가 있고 추후 추적하기 위한 로그입니다. 장바구니 상품추가, 로그인, 결제등이 대표적입니다. 보통 INFO로 기록합니다.

1.6.4. 감사 로그(Audit log)

감사 로그는 보안 관련 시간순 기록, 기록 집합 및 / 또는 대상 및 기록 데이터 소스입니다. 특정 작업, 절차 또는 기록에 언제든지 영향을 미친 활동 순서에 대한 증빙 자료를 제공하기 위해 기록됩니다. 보통 INFO이지만 운영자가 수정가능하지 않는 곳에 저장합니다.

1.7. 로그로 남기면 좋은 것들

  • 중요한 기동관련 설정

  • 에러

  • 경고

  • DB에 저장해야 하는 변경된 데이터

  • 주요 시스템간 요청과 응답

  • 중요한 상태 변화

  • 사용자 Interaction

  • 실패할 가능성이 있는 호출

  • 특정 상태를 기다리는데 시간이 걸릴때

  • 오래 걸리는 작업에 대해 주기적으로 진행상태 기록

  • 중요한 로직 분기점과 그 분기로 이끈 상태

  • 고수준 함수를 처리하는 스텝이나 이벤트에 대한 요약 ( 저수준 복잡한 프로세스의 매 스텝마다 로그를 남기는것은 피할것)

1.8. 로그로 남기지 말것

  • 함수 진입. 중요한 함수에 대해서만 기록할것. 또는 디버그 레벨로만 기록할것

  • 반복문 안의 데이터. 많은 반복을 가지는 데이터를 기록하지 말것. 작은 반복은 OK. 큰 반복에 대해서는 주기적으로 요약 형태로 기록

  • 큰 메시지나 파일 내용을 로그로 기록하지 말것. 디버깅을 위해 일부만 기록하거나 요약만 기록할것

  • 인자한 에러. 실제로는 오류가 아닌 오류. 읽는 사람을 혼란스럽게 할수 있음. 오류 처리가 정상 실행 경로의 일부일때 발생함

  • 반복적 에러: 동일하거나 유사한 로그를 반복적으로 기록하지 말것. 로그를 에러로 가득채우게 되며 실제 오류를 숨기게 됨. 에러 타입의 빈도는 로그 모니터링에 중요함.


출처 : https://narusas.github.io/2017/11/14/logging.html