1

考虑以下函数:

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); 

相应的日志条目为空:

[] 

我该如何解决?

4

1 回答 1

0

我从 boost 日志作者那里得到了反馈。要使范围在登录过程中可用,您必须添加“范围”作为属性。它这样做了:

logging::core::get()->add_thread_attribute("Scope", attrs::named_scope());

但是,这仅与所示的当前线程有关。如果您使用多个线程,则必须调用:

logging::core::get()->add_global_attribute("Scope", attrs::named_scope());
于 2014-05-20T11:40:40.553 回答