프로그래밍 Part1: 디버그용 로그¶
아이펀 엔진은 프로그래밍 디버깅을 위한 로그로서 Google glog 를 사용합니다. Glog 의 자세한 내용은 Glog 문서 를 참고하시면 됩니다.
지원되는 LOG level 은 INFO
, WARNING
, ERROR
, FATAL
이 있으며, 간단한 사용법은 다음과 같습니다.
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.");
}
|
Log 파일 생성 위치¶
아이펀 엔진에서 glog 가 생성되는 위치는 다음과 같습니다.
개발 단계에서는 빌드 디렉토리 아래
logs/glog/
디렉토리 아래 생성됩니다.라이브 단계에서는 리눅스의 경우
/var/log/funapi/{{ project_name }}/glog
, 윈도우즈의 경우{{ .zip 패키지 파일 해제 디렉터리 }}\var\logs\funapi\{{ project_name }}\glog
아래 생성됩니다.
화면에 로그 메시지 출력¶
개발 및 테스트 단계에서 Log 를 file 이 아닌 console 화면에 출력하려면 실행할 때 --logotostderr
혹은 --alsologtostderr
을 추가하면 됩니다. 전자는 로그 파일은 생성하지 않고 화면으로만 로그를 출력하는 것이고 후자는 로그 파일과 화면 모두에 출력하게 됩니다.
$./my_server-local --logtostderr
$./my_server-local --alsologtostderr
로그 기능 설정 파라미터¶
MANIFEST.json 의 Logging
섹션에 다음과 같은 설정을 지정할 수 있습니다.
직접 설정을 바꿀 일이 거의 없는 설정들
glog_flush_interval: 구글 로깅을 플러쉬하기 위한 초단위 시간 주기. (type=int32, default=1)
glog_retention_period_in_days: 구글 로그 파일의 보관 기간. 보관 기간이 지난 glog 파일은 삭제됩니다. (type=int32, default=30)