2013-10-06 48 views
2

我想弄清楚如何結合BOOST_LOG_SEV啓用一個簡單的過濾器。在Boost.Log中過濾非平凡的記錄器?

例如,如果我設置這樣的事情了:

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文檔迅速躥而從簡單的日誌過濾到更復雜的情況。

回答

1

首先,您可能想要了解的有關閱讀boost日誌文檔的小祕密是,代碼示例比doc頁面上的摘要要完整得多。如果我理解你的權利,你應該感到高興與例如從

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

外觀爲set_filter線,更適應:

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

對於更高級的濾光片我剛纔問一個相關的問題在助推用戶郵件列表:

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

+0

約翰,我有麻煩過濾嚴重性。我已經用盡所有教程,文檔,示例,SO問題。因爲我只是在學習Boost,所以我發現自己游泳的條件和選擇讓我懷疑自己是否在正確的軌道上。我的問題在這裏:stackoverflow.com/q/29707017/1735836 – Patricia