내가 현재 cout
내 Trainer
클래스의 출력에서 로그 라인을 덤프 로그 싱크를 만드는거야 :부스트 :: 로그 싱크를 복사하고 바꿀 수 있습니까?
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
으로 변경하고 필터를 추가하는 것을 선호합니다.
이 작업을 수행 할 수 있습니까?