标签:
// Declare attribute keywordsBOOST_LOG_ATTRIBUTE_KEYWORD(severity, "Severity", severity_level)BOOST_LOG_ATTRIBUTE_KEYWORD(timestamp, "TimeStamp", boost::posix_time::ptime)void init_logging(){boost::shared_ptr< sinks::synchronous_sink< sinks::text_file_backend > > sink = logging::add_file_lognational characters ("sample.log",keywords::format = expr::stream<< expr::format_date_time(timestamp, "%Y-%m-%d, %H:%M:%S.%f")<< " <" << severity.or_default(normal)<< "> " << expr::message);// The sink will perform character code conversion as needed, according to the locale set with imbue()std::locale loc = boost::locale::generator()("en_US.UTF-8");sink->imbue(loc);// Let‘s add some commonly used attributes, like timestamp and record counter.logging::add_common_attributes();}
enum severity_level{normal,notification,warning,error,critical};template< typename CharT, typename TraitsT >inline std::basic_ostream< CharT, TraitsT >& operator<< (std::basic_ostream< CharT, TraitsT >& strm, severity_level lvl){static const char* const str[] ={"normal","notification","warning","error","critical"};if (static_cast< std::size_t >(lvl) < (sizeof(str) / sizeof(*str)))strm << str[lvl];elsestrm << static_cast< int >(lvl);return strm;}
void test_narrow_char_logging(){// Narrow character logging still workssrc::logger lg;BOOST_LOG(lg) << "Hello, World! This is a narrow character message.";}void test_wide_char_logging(){src::wlogger lg;BOOST_LOG(lg) << L"Hello, World! This is a wide character message.";// National characters are also supportedconst wchar_t national_chars[] = { 0x041f, 0x0440, 0x0438, 0x0432, 0x0435, 0x0442, L‘,‘, L‘ ‘, 0x043c, 0x0438, 0x0440, L‘!‘, 0 };BOOST_LOG(lg) << national_chars;// Now, let‘s try logging with severitysrc::wseverity_logger< severity_level > slg;BOOST_LOG_SEV(slg, normal) << L"A normal severity message, will not pass to the file";BOOST_LOG_SEV(slg, warning) << L"A warning severity message, will pass to the file";BOOST_LOG_SEV(slg, error) << L"An error severity message, will pass to the file";}
标签:
原文地址:http://www.cnblogs.com/zhangpanyi/p/4487269.html