glog使用

设置符号变量,定制日志行为

具体符号变量的设置看glog介绍中的符号变量

日志系统初始化

初始化函数:google::InitGoogleLogging(argv[0])
初始化参数一般是第一个命令行参数–即程序的名称

结束时可以调用关闭日志系统函数

关闭日志库函数:google::ShutdownGoogleLogging()

程序运行时,可通过命令行参数或环境变量来控制程序的日志行为

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* base_filename)

[Thread-safe]设置指定级别的日志输出的日志文件,如果base_filename为””则表示该级别日志不输出

void google::SetLogSymlink(LogSeverity severity,const char* symlink_basename)

[Thread-safe]设置置顶级别的日志文件的软连接,symlik_basename为空表示不设置软连接
如果不调用该函数,系统默认连接名称是程序名

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::vectorstd::string& google::GetLoggingDirectories()

获取日志输出目录集合

void google::InstallFailureSignalHandler()

信号处理函数,处理的主要信号有SIGSEGV/SIGILL/SIGFPE/SIGBRT/SIGBUS/SIGTERM

void google::InstallFailureWriter(void (*writer)(const char *data,int size))

设置系统崩溃时的输出函数,data数据不一定是以”结尾

void google::InstallFailureFunction(void (*fail_func)())

设置LOG(FATAL)在输出日志消息后调用的函数