GLog使用笔记

环境:
XPsp3 vs2005 glog-0.3.3  http://download.csdn.net/detail/chenguangxing3/6661667

编译:
glog-0.3.3里面有vs2008的sln,vs2005可以直接修改sln和vcproj降版本.
打开sln直接编译就行了,没悬念.编译后生成: libglog.dll libglog.lib libglog_static.lib. 头文件在src\windows\glog

使用:
文件包含和宏定义:
#define GOOGLE_GLOG_DLL_DECL           // 使用静态glog库用这个
#define GLOG_NO_ABBREVIATED_SEVERITIES // 没这个编译会出错,传说因为和Windows.h冲突
#include "glog/logging.h"
#pragma comment(lib,"glog/libglog_static.lib")

设置参数,输出日志:
FLAGS_log_dir = "c:\\GLogFiles";     // 设置日志文件保存目录,这个目录必须是已经存在的,否则不能生成日志文件.

// GLog生成的文件名格式是[文件名].[计算机名].[Windows用户名].[log].[等级].[年月日时分秒].[PID]例如:abc.exe.J2RT9QDBPIXKGEO.Administrator.log.INFO.20131205-112354.3108
// 每个进程中至少要执行1次InitGoogleLogging(),否则不产生日志文件.例如:只在xxApp::InitInstance()中调用一次InitGoogleLogging(),xxDlg中不必调用也会把日志输出到指定文件.
google::InitGoogleLogging( "abc.exe" ); // 设置日志文件名中的"文件名"字段.
 
LOG(INFO) <<  "我在InitInstance()" ;    // 记录一个INFO等级的日志"我在InitInstance()"
 
google::ShutdownGoogleLogging();      // 停止GLog,与InitGoogleLogging()成对使用.没有这句vs2005会有内存泄漏,但是网上好多例子都没有用这句
/*
上面代码生成了名为"abc.exe.J2RT9QDBPIXKGEO.Administrator.log.INFO.20131205-134009.4068"的日志,内容是:
Log file created at: 2013/12/05 13:40:09
Running on machine: J2RT9QDBPIXKGEO
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
I1205 13:40:09.375000  2460 abc.cpp:75] 我在InitInstance()
*/

问题:
GLog好像不支持Unicode

参考资料:
How To Use Google Logging Library (glog)

你可能感兴趣的:(GLog,笔记,第三方库)