이전에는 왠만한 기본 라이브러리는 직접 개발해서 사용하려는 생각에 사로 잡혀 있었습니다. 성능 이슈나 그런 문제가 아닌 직접 구현해야 한다는 강박관념도 존재 하였고 소스 코딩 스타일의 다름에 대한 이질적인 문제에 대한 반항이기도 했던거 같습니다.
물론 애플리케이션 로깅 클래스도 이미 구현한 적이 있고 실제로 적용도 해봤습니다. 하지만 이제부터는 공개된 오픈 소스 라이브러리의 조합으로 개발을 하려는 시도를 하고 있습니다. 그 첫번째가 로깅 관련 라이브러리입니다.
glog는 구글에서 공개하는 프로젝트입니다. 아래의 사이트에서 다운 받을 수 있습니다.
http://code.google.com/p/google-glog/
현재 버전은 glog-0.3.2.tar.gz 이며 압축파일 형태로 배포 되고 있습니다. 압축을 해제하면 아래와 같은 파일들을 볼 수 있습니다.
테스트용으로 프로젝트를 생성하신 후에 해당 프로젝트 폴더에 src와 vsprojects 폴더를
복사해서 붙여넣기 합니다.
vsprojects폴더에는 libglog_static 프로젝트가 있습니다. 해당 프로젝트를 현재의 솔루션에 포함 시킵니다. 해당 버전 보다 상위의 버전(2012)을 사용하고 있어서 변환마법사가 실행됩니다. 완료를 눌러서 변환을 실행합니다.
실행 파일 프로젝트에 libglog_static 프로젝트 참조를 추가합니다.
프로젝트 속성 - Configuration properties - C/C++ - General - Additional Include Directories
에 glog 헤더파일을 참조 할수 있도록 src/windows 를 추가합니다.
#include "stdafx.h"
#define GOOGLE_GLOG_DLL_DECL
#define GLOG_NO_ABBREVIATED_SEVERITIES
#include <glog/logging.h>
int _tmain(int argc, _TCHAR* argv[])
{
google::InitGoogleLogging("Title");
// 로그 저장 폴더
// 해당 폴더는 미리 생성되어 있어야 한다.
FLAGS_log_dir = "c:\glog_folder";
LOG( INFO ) << "info";
LOG( WARNING ) << "warning";
return 0;
}
아래와 같이 로그가 생성되는 것을 확인할 수 있습니다.
끝!!!