更详细的总结请看:glog基础知识精讲
常用宏定义:
#define LOG_INFO LOG(INFO)#define LOG_WARNING LOG(WARNING)
#define LOG_ERROR LOG(ERROR)
#define LOG_FATAL LOG(FATAL)
#define LOG_INFO_IF(condition) LOG_IF(INFO,condition)
#define LOG_WARNING_IF(condition) LOG_IF(WARNING,condition)
#define LOG_ERROR_IF(condition) LOG_IF(ERROR,condition)
#define LOG_FATAL_IF(condition) LOG_IF(FATAL,condition)
#define LOG_INFO_EVERY(freq) LOG_EVERY_N(INFO, freq)
#define LOG_WARNING_EVERY(freq) LOG_EVERY_N(WARNING, freq)
#define LOG_ERROR_EVERY(freq) LOG_EVERY_N(ERROR, freq)
#define DLOG_INFO DLOG(INFO)
alsologtostderr(bool,default=false) //是否同时将日志输出到文件和stderr
minloglevel (int, default=google::INFO) //限制输出到 stderr 的部分信息,包括此错误级别和更高错误级别的日志信息
stderrthreshold (int, default=google::ERROR) //除了将日志输出到文件之外,还将此错误级别和更高错误级别的日志同时输出到 stderr,这个只能使用 -stderrthreshold=1 或代码中设置,而不能使用环境变量的形式。(这个参数可以替代上面两个参数)
colorlogtostderr(bool, default=false) //将输出到 stderr 上的错误日志显示相应的颜色
log_dir (string, default="") //设置日志文件输出目录
v (int, default=0) //只有当自定义日志(VLOG)级别值小于此值时,才进行输出,默认为0(注:自定义日志的优先级与GLOG内置日志优级相反,值越小优先级越高)。
#define DLOG_WARNING DLOG(WARNING)
#define LOG_WARNING_FIRST_N(times) LOG_FIRST_N(WARNING, times)
常见参数及初始值:
logtostderr (bool, default=false) //是否将所有日志输出到 stderr,而非文件
vmodule (string, default="") //分文件(不包括文件名后缀,支持通配符)设置自定义日志的可输出级别,如:GLOG_vmodule=server=2,client=3 表示文件名为server.* 的只输出小于 2 的日志,文件名为 client.* 的只输出小于 3 的日志。如果同时使用 GLOG_v 选项,将覆盖 GLOG_v 选项。
注:以上参数通过加FLAGS_ 前缀来设置。
基本参数配置实例:
GLogWrapper(char* program) {
google::InitGoogleLogging(program);
FLAGS_log_dir="PATH/prefix_"; //设置log文件保存路径及前缀
FLAGS_alsologtostderr = true; //设置日志消息除了日志文件之外是否去标准输出
// FLAGS_stderrthreshold=google::WARNING; //WARNING及以上级别标准输出
FLAGS_colorlogtostderr = true; //设置记录到标准输出的颜色消息(如果终端支持)
FLAGS_stop_logging_if_full_disk = true; //设置是否在磁盘已满时避免日志记录到磁盘
google::InstallFailureSignalHandler();
}
~GLogWrapper()
{
google::ShutdownGoogleLogging();
}