glog 使用: 02-标识设置

有几个标志影响glog的输出行为。有启动参数和代码两种方式进行标识设置。

在启动参数中设置标识

如果编译 glog 时使用了 gflags 库,那么可以通过参数的形式进行标识设置:

./your_application --logtostderr=1

如果没有使用,则可以通过环境变量设置标志,在标志名前加上 GLOG_ ,例如:

GLOG_logtostderr=1 ./your_application

一些常用的标识如下:

  • logtostderr (bool, default=false): 将消息记录到stderr而不是日志文件。
    注意:您可以通过指定1、true或yes(不区分大小写)将二进制标志设置为true。此外,您可以通过指定0、false或no(同样,不区分大小写)将二进制标志设置为false。
  • stderrthreshold (int, default=2, which is ERROR):除日志文件外,还将此级别或更高级别的日志消息复制到stderr。
    INFO、WARNING、ERROR、FATAL的严重级别分别为0、1、2、3。
  • minloglevel (int, default=0, which is INFO):在此级别或更高级别记录消息。
    INFO、WARNING、ERROR、FATAL的严重级别分别为0、1、2、3。
  • log_dir (string, default=“”):如果指定,则将日志文件写入此目录而不是默认日志记录目录。
  • v (int, default=0):显示小于或等于该标志值的所有VLOG(m)消息。可被 --vmodule 覆盖。详见:the section about verbose logging
  • vmodule (string, default=“”):每个模块的详细级别。参数必须包含一个逗号分隔的列表 <module name>=<log level>.<module name>是一个glob模式(例如,gfs*适用于所有名称以“gfs”开头的模块),与基本文件名匹配,忽略后缀(即忽略.cc/.h/-inl.h)。<log level>覆盖 --v 允许的任何值。详见: the section about verbose logging

在logging.cc中还定义了一些其他标志。执行DEFINE_的源代码以查看所有标志的完整列表。

在代码中设置标识

还可以通过修改全局变量 FLAGS_* 来修改程序中的标志值。大多数设置在更新 FLAGS_* 后立即开始工作。
要注意的是与目标文件相关的标志。例如,你需要在调用google::InitGoogleLogging 之前设置 FLAGS_log_dir 。下面是一个例子:

google::InitGoogleLogging(argv[0]);

LOG(INFO) << "file";
// 大多数 flag 会在修改值之后立刻生效
FLAGS_logtostderr = 1;
LOG(INFO) << "stderr";
FLAGS_logtostderr = 0;

// 但是,在这里修改日志存储路径,不会起效。你需要在 google::InitGoogleLogging 之前就设置.
FLAGS_log_dir = "/some/log/directory";
LOG(INFO) << "the same file";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值