【发布时间】:2016-03-16 11:09:24
【问题描述】:
我读过boost doc。但它所描述的对我的要求来说太有限了:
我的项目有一个用于记录几乎所有日志的主记录器,它使用time_based_rotation。另外我想将一些消息记录到另一个文件中,这样我就可以独立检查这些日志,而不是与主日志混合在一起。
我想要的是:
BOOST_LOG_INLINE_GLOBAL_LOGGER_DEFAULT(gl, boost::log::sources::severity_logger_mt<Logger::severity_level>)
BOOST_LOG(gl::get())<<message; // the main logger
BOOST_LOG_INLINE_GLOBAL_LOGGER_DEFAULT(loggerA, boost::log::sources::logger_mt)
BOOST_LOG(loggerA)<<message; // another logger, log to anther file
问题是:我应该如何设置日志核心?添加text_multifile_backend?但用法与 boost 示例完全不同。我觉得在我的要求中文件名设置应该属于记录器而不是记录核心,但是我不知道该怎么做。
【问题讨论】:
-
太好了,我已经做到了。但是还有一点小问题,我使用 text_multifile_backend 根据账户名登录到不同的文件。但是 LineID 是“boost::log::add_common_attributes()”的全局变量。如何让每个“account_name.log”都有自己专属的LineID?即使我为这个 text_multifile_backend 接收器添加属性仍然无法做到——LineID 计数器应该属于文件
-
属性与接收器无关,因此除非您为每个文件维护一个记录器并将 LineID 计数器添加到该记录器,否则您不能这样做。在这种情况下,您不会使用
add_common_attributes添加的属性,因此您也可以使用添加所需属性的代码替换该调用。
标签: boost-log