考虑以下功能:
void thread()
{
BOOST_LOG_FUNCTION();
while(true) {
// Create log entry
}
}
如果我只是在“main”中调用“thread()”,我在“thread()”中创建的日志条目看起来像预期的那样:
[void __cdecl thread(void) (c:\...\maintest.cpp:16)]
但是如果在函数中使用“thread()”:
boost::thread t(thread);
相应的日志条目为空:
[]
我该如何解决?
答案 0 :(得分:0)
我从boost日志作者那里得到了反馈。要使范围在登录过程中可用,您必须添加“范围”作为属性。它做到了这一点:
logging::core::get()->add_thread_attribute("Scope", attrs::named_scope());
但是,这仅与所示的当前线程有关。如果您使用多个线程,则必须致电:
logging::core::get()->add_global_attribute("Scope", attrs::named_scope());