Я хочу настроить уровень серьезности без перекомпиляции, поэтому я использую init_from_stream для чтения уровня серьезности из файла. Другие варианты Мне не нужно менять время выполнения, поэтому их настройка по-прежнему выполняется с помощью boost.log API.boost.log config log severity по файлу конфигурации
Файл конфигурации является:
[Core]
DisableLogging=false
Filter="%Severity% >= 0"
Код:
std::ifstream file("log_setting.ini");
boost::log::init_from_stream(file);
boost::log::register_simple_formatter_factory< severity_level, char >("Severity");
// following is same as before(all setting is by calling API, and comment out severity settings)
boost::shared_ptr<boost::log::core> core = boost::log::core::get();
core->set_exception_handler(boost::log::make_exception_suppressor());
//add and set sinks
Но я обнаружил, что INIT файлом кажется несовместим с "традиционной обстановке API", если добавить init_from_stream
, есть ничего не выходит из системы.
Мое требование - использовать файл настроек для управления некоторыми частями параметров, которые мне нужны, чтобы изменить время выполнения, но не все из них.
Таким образом, цель дизайна init_from_stream - это инициировать журнал из файла, а изменить настройки текущего журнала – jean