0

I'm using boost log:

How to change (configure) severity level for logging during RUNTIME.

NoNaMe
  • 6,020
  • 30
  • 82
  • 110
  • Please used help files for basic question, or be specific by posting your work, and problem! – MarmiK Jul 22 '15 at 07:23

1 Answers1

0

The answer is on the page you linked to. You can set a filter at any time in run time. The new filter can check against an updated severity threshold.

Alternatively, you can set a custom filter which will use an external variable holding the level threshold. An example is given here, see the phoenix::bind part. Note that in this case you should be prepared that your filter will be called concurrently from multiple threads, and you must provide the necessary synchronization.

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")));
Andrey Semashev
  • 10,046
  • 1
  • 17
  • 27