我有一个很好的格式和一个控制台日志:
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 更改默认 logging::core 格式化程序?这是不可能的。
3)还有其他想法吗?
谢谢!