glog 详细日志记录和 Boost 程序选项
glog verbose logging & Boost program options
我在我的代码中使用 boost
program options
并尝试使用 glog
(google 日志库)添加详细日志记录。
问题是 boost
捕获命令行选项,我不能使用 --v
标志来控制详细日志记录。是否有从代码中设置 minloglevel
的方法?我找不到以编程方式执行此操作的函数或宏...
我找到了一种变通方法和一种应该但不起作用的答案。
您可以使用环境变量 GLOG_v
来设置详细级别
(on linux)GLOG_v=2 ./your_binary
这很好但不理想
我还发现了一个没有很好记录的函数 google::SetVLOGLevel(char*, int)
这正是我要找的,但不幸的是使用它会引发异常。
我遇到了同样的问题,我设法在我的主要功能中设置 glog 标志,如下所示:
namespace po = boost::program_options;
int main(int ac, char **av) {
po::options_description desc("...");
desc.add_options()
("verbosity,v", po::value<int>(), "set verbose logging level, defaults to 0")
;
po::variables_map vm;
try{
po::store(po::parse_command_line(ac, av, desc), vm);
po::notify(vm);
}
catch (po::required_option& e){
...
}
...
if (vm.count("verbosity")){
FLAGS_v = vm["verbosity"].as<int>();
}
else{
FLAGS_v = 0;
}
google::InitGoogleLogging("...");
}
我在我的代码中使用 boost
program options
并尝试使用 glog
(google 日志库)添加详细日志记录。
问题是 boost
捕获命令行选项,我不能使用 --v
标志来控制详细日志记录。是否有从代码中设置 minloglevel
的方法?我找不到以编程方式执行此操作的函数或宏...
我找到了一种变通方法和一种应该但不起作用的答案。
您可以使用环境变量 GLOG_v
来设置详细级别
(on linux)GLOG_v=2 ./your_binary
这很好但不理想
我还发现了一个没有很好记录的函数 google::SetVLOGLevel(char*, int)
这正是我要找的,但不幸的是使用它会引发异常。
我遇到了同样的问题,我设法在我的主要功能中设置 glog 标志,如下所示:
namespace po = boost::program_options;
int main(int ac, char **av) {
po::options_description desc("...");
desc.add_options()
("verbosity,v", po::value<int>(), "set verbose logging level, defaults to 0")
;
po::variables_map vm;
try{
po::store(po::parse_command_line(ac, av, desc), vm);
po::notify(vm);
}
catch (po::required_option& e){
...
}
...
if (vm.count("verbosity")){
FLAGS_v = vm["verbosity"].as<int>();
}
else{
FLAGS_v = 0;
}
google::InitGoogleLogging("...");
}