Я использую boost log:C++ увеличить библиотеки
Как изменить (Конфигурировать) уровень важности для ведения журнала во время выполнения.
Я использую boost log:C++ увеличить библиотеки
Как изменить (Конфигурировать) уровень важности для ведения журнала во время выполнения.
Ответ на эту страницу linked. Вы можете установить фильтр в любое время во время выполнения. Новый фильтр может проверяться на обновленный порог серьезности.
В качестве альтернативы вы можете установить настраиваемый фильтр, который будет использовать внешнюю переменную с порогом уровня. Приводится пример here, см. Раздел phoenix::bind
. Обратите внимание, что в этом случае вы должны быть готовы к тому, что ваш фильтр будет вызываться одновременно из нескольких потоков, и вы должны предоставить необходимую синхронизацию.
std::atomic<logging::trivial::severity_level> g_threshold;
void update_threshold(logging::trivial::severity_level level)
{
g_threshold.store(level, std::memory_order_relaxed);
}
bool my_filter(logging::value_ref<logging::trivial::severity_level> const& level)
{
logging::trivial::severity_level threshold =
g_threshold.load(std::memory_order_relaxed);
return level >= threshold;
}
// ...
logging::core::get()->set_filter(
phoenix::bind(&my_filter, expr::attr<logging::trivial::severity_level>("Severity")));
Пожалуйста, используйте файлы справки по основному вопросу или будьте конкретны, разместив свою работу и проблему! – MarmiK