2

BOOST_LOG_SEV と組み合わせて単純なフィルターを有効にする方法を見つけようとしています。

たとえば、次のようなものを設定した場合:

enum class SeverityLevel {
  Foo,
  Bar
};

boost::log::sources::severity_logger_mt<SeverityLevel> slg;

BOOST_LOG_SEV(slg, SeverityLevel::Foo) << "Foo log record";
BOOST_LOG_SEV(slg, SeverityLevel::Bar) << "Bar log record";

次のようなものを追加できるようにしたいと思います。

slg.set_minimum_severity(SeverityLevel::Bar);  // Filter out Foo logs

Boost.Log のドキュメントは、些細なログのフィルタリングから、より複雑なケースへと急速にジャンプします。

4

1 に答える 1

1

まず、boost ログのドキュメントを読む際に知っておきたいちょっとした秘密は、コード例がドキュメント ページの要約よりもはるかに完全であることです。私があなたを正しく理解しているなら、あなたはからの例に満足するはずです

http://www.boost.org/doc/libs/1_54_0/libs/log/example/doc/tutorial_filtering.cpp

set_filter 行を探して、次のように調整します。

sink->set_filter(severity >= SeverityLevel::Bar);

より高度なフィルターについては、boost users メーリング リストで関連する質問をしました。

http://lists.boost.org/boost-users/2013/10/80211.php

于 2013-10-16T19:07:05.943 に答える