【发布时间】:2019-06-05 11:35:27
【问题描述】:
我们已经重构了我们的记录器以使用 boost 而不是我们内部的记录器,它不是线程安全的。问题是我们围绕项目的所有日志调用(数千行代码)都以std::endl 结尾。现在,我们的记录器是线程安全的,但是输出的记录之间有一个额外的空行。
这就是我初始化记录器的方式:
void init()
{
boost::log::add_console_log
(
std::clog,
boost::log::keywords::format =
(
boost::log::expressions::stream << boost::log::expressions::format_date_time< boost::posix_time::ptime >("TimeStamp", "%Y-%m-%d %H:%M:%S")
<< " [" << boost::log::expressions::attr< LogLevel_e >("Severity") << "]: "
<< boost::log::expressions::smessage
)
);
}
它是一个用于记录我们的消息的 severity_logger_mt() 对象。 我在他们的文档中读到,如果我创建自己的后端和前端,我可能能够防止出现空行。为了防止代码中出现多余的空行而创建两个模块似乎太麻烦了。
我错过了什么吗?有更简单的方法吗?我应该为这个问题添加更多信息吗? 另外,我们谈论的是 boost 1.69。
【问题讨论】: