로깅

김종하·2022년 8월 3일
0

다양한 개발지식

목록 보기
1/1

로깅이란?

운영체제나 소프트웨어가 실행 중에 발생하는 이벤트를 기록하는 행위

로깅하는 법

  • System API call
    리눅스 시스템 API 의 syslog()
  • 로깅 라이브러리
    JCL, slf4j, log4j, logback 등등

slf4j

  • Simple logging facade for Java
  • 이름에서 볼 수 있듯 퍼사드 패턴을 활용해 다양한 로그라이브러리 들을 통일된 하나의 방법으로 사용할 수 있도록 함
  • 스프링 부트에서는 logback 을 binding 해서 사용

로깅레벨

  • FATAL : 매우 심각한 에러가 발생한 경우. 프로그램이 종료되는 경우가 많다.
  • ERROR : 에러가 발생했지만, 프로그램이 종료되지 않는 경우
    - 외부 API 호출 했는데 응답이 Error 로 오는 경우
  • WARN : 에러가 될 수 있는 잠재적 가능성이 있는 경우, 알람이 오도록 설정하여 에러가 나기 전 조취를 취하거나, 에러가 나면 그 전의 상황을 알 수 있다.
    - 인메모리 캐시 용량이 다 차가는 경우, DB커넥션이 설정한 접속시간보다 오래걸리는 경우 등
  • INFO : 애플리케이션의 상태를 간결하게 보여주는 경우
  • DEBUG : INFO 레벨보다 더 자세한 정보가 필요한 경우, 권한이 없어 디버깅이 불가능한 경우 유용
  • TRACE : DEBUG 레벨보다 더 자세한 정보가 필요한 경우, 개발환경에서 버그를 해결하기 위해 사용. 최종 프로덕션이나 커밋에 포함하면 안된다.

독자를 고려한 로그메시지

1독자 - Machine

  • 로그 파일의 인코딩 문제를 최소화하기 위해 되도록 영어로 사용하자
  • 파싱하기 좋도록 작성하자

2독자 - 개발자

  • 로그 메시지에 컨택스를 담을 것
  • 가능하면 해결방법을 같이 적을 것

0개의 댓글