로깅이란 시스템을 작성하는 행위로, 운영중인 어플리케이션의 운영 상황이나 정보를 남기기위해 사용된다.

일반적인 로그 기록의 이점은 다음과 같다.

  1. 로그는 재현하기 힘든 버그에 대한 유용한 정보를 제공한다.
  2. 로그는 성능에 관한 통계와 정보를 제공한다.

일반적으로 로그는 시스템의 복잡성과 연계되는 부분이므로, 로그의 특성과 시스템 영향도를 잘 고려하여 사용해야한다.

로그를 출력하는 방법

  1. System print문 사용하기
  2. 로깅 라이브러리 사용하기

→ 1번의 방법은 I/O블락이 발생하므로 어플리케이션 운영에 있어 심각한 영향을 미칠 수 있다.

따라서, 개발단계에서 sout을 쓰되, 운영에 사용되는 코드에는 반드시 로깅 라이브러리로 대체하도록 한다.

효과적인 로깅 전략을 수립하기

로깅전략은 어떻게 가져가야할까? 그에 대한 표준적인 가이드라인은 다음과 같다.

  1. 로그 수집의 목적을 명확히 하여 추가할 로그량을 최소화 하자
    1. 조직적인 차원에서 로그 표준을 정의하고 관리하는 것이 좋다.
    2. 참고로 표준 로깅 라이브러리를 사용하는 것이 좋다.
  2. 로그 수집의 프로세스 전반을 관리하고 부서별로 로그 태스크 전담자를 배정하자
  3. 최대한 단말 로그량을 줄여야한다.
  4. 로그 정의에 대한 문서를 마련해놓자.
    1. 로그의 시간이나 날짜에 대한 정의를 다루는 문서를 마련해놓으면 로그분석시 많은 사용자가 활용할 수 있다.

Log Rolling

로그 롤링이란 일정 단위로 로그파일을 재갱신하는 작업으로 Log rotation이라 불리기도 한다.

즉, 무식하게 로그를 계속 쌓아 하나의 파일로 두는 것이 아닌, 일정주기로 백업이나 별도처리를 통해 파일을 분리하는 것을 말한다.