0
我目前正在创建日志接收器,它从我的Trainer
类的输出转储日志行cout
:我可以复制Boost :: Log接收器并更改它吗?
using namespace boost;
using namespace log;
using namespace expressions;
using namespace sinks;
auto sink = make_shared<synchronous_sink<text_ostream_backend>>();
sink->set_formatter(Utility::GetLoggingFormat());
sink->locked_backend()->add_stream(
shared_ptr<std::ostream>(&std::cout, null_deleter()));
sink->set_filter((
has_attr(Utility::ClassTag) &&
Utility::ClassTag == "App::Trainer"));
boost::log::core::get()->add_sink(sink);
不过,我已经添加了一个接收器(通过调用别处add_file_log
)转储所有日志行到一个文件。它使用相同的GetLoggingFormat()
格式化程序。实际上,我拥有该功能的唯一原因是,我不必重复格式化程序代码。
相反,我宁愿只是“复制”文件接收器(在add_file_log
的其他位置创建),将其输出更改为std::cout
并向其添加过滤器。
我可以这样做吗?