подробное ведение журнала & amp; Параметры программы Boost

я использую boost program options в моем коде и пытается добавить подробное ведение журнала с помощью glog (Библиотека журнала Google).

Проблема в том, что boost захватывает параметры командной строки, и я не могу использовать --v флаг для контроля многословной регистрации. Есть ли способ настройки minloglevel из кода? Мне не удалось найти функцию или макрос для этого программно …

0

Решение

У меня была та же проблема, и мне удалось установить флаги 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("...");
}
4

Другие решения

Я нашел одну работу вокруг и один ответ, который должен, но не работает.
Вы можете использовать переменную среды GLOG_v установить уровень детализации

(на Linux)GLOG_v=2 ./your_binary Это работает хорошо, но не идеально

Я также нашел не очень хорошо документированную функцию google::SetVLOGLevel(char*, int) это именно то, что я искал, но, к сожалению, его использование создает исключение.

0

По вопросам рекламы [email protected]