glog详解

glog详解


1.   glog的安装与使用
     1、下载glog。
           http://code.google.com/p/google-glog/downloads/detail?name=glog-0.3.3.tar.gz
      2、安装glog。
           ./configure --preifx=mypath
           make
           make install

       最终在mypath目录下会生成.a和.so两种类型lib.
      3.   例子
#include 
#include 


int main(int argc, char **argv) {
    google::InitGoogleLogging(argv[0]);
    google::SetLogDestination(google::GLOG_INFO,"./myInfo");
    LOG(INFO) << "HELLO" << "ok!";
    return 0;
}

     运行写一个shell脚本执行:
LIB_DIR='/apsarapangu/disk1/glog-0.3.3/lib/libglog.a'
INCLUDE_DIR='/apsarapangu/disk1/glog-0.3.3/include/'
g++ -g test.cpp $LIB_DIR -I$INCLUDE_DIR -lpthread -o test


2.   基于glog的日志插件

glog APIs:

void google::InitGoogleLogging(const char* argv0) 初始化glog库,参数是第一个命令行参数即程序名 void google::ShutdownGoogleLogging() 关闭glog库 void google::FlushLogFiles(LoSeverity min_severity) [Thread-safe]指定级别以上的所有日志消息都立即写入到日志文件中 void google::FlushLogFilesUnsafe(LogSeverity min_severity) 非线程安全的输出指定级别以上的日志消息,用于灾难性程序问题时输出必要的日志消息 void google::SetLogDestination(LogSeverity severity,const char* basefilename) [Thread-safe]设置指定级别的日志输出的日志文件,如果basefilename为""则表示该级别日志不输出 void google::SetLogSymlink(LogSeverity severity,const char* symlinkbasename) [Thread-safe]设置置顶级别的日志文件的软连接,symlikbasename为空表示不设置软连接 如果不调用该函数,系统默认连接名称是程序名 void google::AddLogSink(LogSink *destination) void google::RemoveLogSink(LogSink *destination) [Thread-safe]添加和删除日志输出渠道 void google::SetLogFilenameExtension(const char* filename_extension) [Thread-safe]为所有日志文件添加文件扩展名,特别用于SetLogDestination()设置的日志文件 通常做法是将监听的端口号作为日志文件扩展名 void google::SetStderrLogging(LogSeverity min_severity) [Thread-safe]确定除了输出到日志文件同时还输出到STDERR的日志最小级别 void google::LogToStderr() [Thread-safe]设置只只将日志输出到STDERR而不输出到日志文件 void google::SetEmailLogging(LogSeverity min_severity,const char* address) [Thread-safe]设置发送邮件的日志最小级别 bool google::SendEmail(const char *dest,const char *subject,const char *body) [Thread-safe]发送邮件 const std::vector & google::GetLoggingDirectories() 获取日志输出目录集合 void google::InstallFailureSignalHandler() 信号处理函数,处理的主要信号有SIGSEGV/SIGILL/SIGFPE/SIGBRT/SIGBUS/SIGTERM void google::InstallFailureWriter(void (*writer)(const char *data,int size)) 设置系统崩溃时的输出函数,data数据不一定是以'\0'结尾 void google::InstallFailureFunction(void (*fail_func)()) 设置LOG(FATAL)在输出日志消息后调用的函数

你可能感兴趣的:(C,vs,C++)