は、私は現在、cout
に私のTrainer
クラスの出力からログの行をダンプするログ・シンクを作成しています:Boost :: Log sinkをコピーして変更することはできますか?
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
に変更してフィルタを追加することをお勧めします。
私はこれを行うことができますか?