【发布时间】:2015-08-25 14:11:50
【问题描述】:
我有一个不错的格式和控制台日志:
auto fmtStream = expressions::stream
<< "LineID: " << expressions::attr<unsigned int>("LineID") << " "
<< "Message: " << expressions::message:
boost::log::add_console_log(std::cout, keywords::format = fmtStream);
格式流当然要长一些.. 现在我想给用户配置日志:
std::ifstream file("log.conf");
init_from_stream(file);
fmtStream 中使用的很多格式都不能使用配置文件中的格式字符串。
如何让用户能够修改控制台接收器,例如添加过滤器?但我想将格式字符串保留为默认值。
我看到的可能性:
1) 为我在代码中定义的控制台日志命名。用户现在可以使用同名接收器对其进行修改。
2) 设置所有接收器采用的默认格式。但根据Boost Log changing the default logging::core formatter?,这是不可能的。
3) 还有其他想法吗?
谢谢!
【问题讨论】:
标签: c++ logging boost boost-log boost-logging