41. 프로그래밍 Part1: 디버그용 로그

아이펀 엔진은 프로그래밍 디버깅을 위한 로그로서 Google glog 를 사용합니다. Glog 의 자세한 내용은 Glog 문서 를 참고하시면 됩니다.

지원되는 LOG level 은 INFO, WARNING, ERROR, FATAL 이 있으며, 간단한 사용법은 다음과 같습니다.

41.1. Google logging 사용 예제

1
2
3
4
5
6
7
8
void some_function() {
  LOG(INFO) << "INFO level message. It does not require a new line.";
  LOG(WARNING) << "WARNING level message.";
  LOG(ERROR) << "ERROR level message.";

  // DLOG works only in the debugging mode.
  DLOG(INFO) << "DLOG gets elimiated if built with NDEBUG.";
}
1
2
3
4
5
6
void SomeFunction()
{
  Log.Info ("INFO level message. It does not require a new line.");
  Log.Warning ("WARNING level message.");
  Log.Error ("ERROR level message.");
}

41.2. Log 파일 생성 위치

아이펀 엔진에서 glog 가 생성되는 위치는 다음과 같습니다.

  • 개발 단계에서는 빌드 디렉토리 아래 glog/ 디렉토리 아래 생성됩니다.
  • 라이브 단계에서는 /var/log/funapi/{{ project_name }}/glog 아래 생성됩니다.

41.3. 화면에 로그 메시지 출력

개발 및 테스트 단계에서 Log 를 file 이 아닌 console 화면에 출력하려면 실행할 때 --logotostderr 혹은 --alsologtostderr 을 추가하면 됩니다. 전자는 로그 파일은 생성하지 않고 화면으로만 로그를 출력하는 것이고 후자는 로그 파일과 화면 모두에 출력하게 됩니다.

$./my_server-local --logtostderr
$./my_server-local --alsologtostderr

41.4. 로그 기능 설정 파라미터

MANIFEST.json 의 Logging 섹션에 다음과 같은 설정을 지정할 수 있습니다.

직접 설정을 바꿀 일이 거의 없는 설정들

  • glog_flush_interval: 구글 로깅을 플러쉬하기 위한 초단위 시간 주기. (type=int32, default=1)
  • glog_retention_period_in_days: 구글 로그 파일의 보관 기간. 보관 기간이 지난 glog 파일은 삭제됩니다. (type=int32, default=30)