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
並向其添加過濾器。
我可以這樣做嗎?