大佬教程收集整理的这篇文章主要介绍了在Boost Log中,如何使用格式字符串格式化自定义severity_level?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的代码的一部分:
#define NUM_SEVERITY_LEVELS 6 enum severity_level { // these are deliberately the same levels that log4j uses trace = 0,debug = 1,info = 2,warning = 3,error = 4,fatal = 5 }; typedef src::severity_logger< severity_level > logger_t; const char* severity_level_str[NUM_SEVERITY_LEVELS] = { "TRACE","DEBUG","INFO","WARNING","ERROR","FATAL" }; template< typename CharT,typename TraitsT > std::basic_ostream< CharT,TraitsT >& operator<< ( std::basic_ostream< CharT,TraitsT >& strm,severity_level lvl ) { const char* str = severity_level_str[lvl]; if (lvl < NUM_SEVERITY_LEVELS && lvl >= 0) strm << str; else strm << static_cast< int >(lvl); return strm; } #define FORMAT_StriNG "%timestamp% [%ThreadID%] %severity% %Module% - %message%" boost::shared_ptr< sinks::synchronous_sink< sinks::text_file_BACkend > > LOG_CREATE_SINK(const std::string& strLogFilename,bool fAutoFlush) { return logging::add_file_log( keywords::file_name = strLogFilename,keywords::open_mode = (std::ios_base::app | std::ios_base::out) & ~std::ios_base::in,keywords::auto_flush = fAutoFlush,keywords::format = FORMAT_StriNG ); }
boost::log::register_simple_formatter_factory< severity_level,char >("Severity");
int main(int argc,char* argv[]) { boost::log::register_simple_formatter_factory< severity_level,char >("Severity"); LOG_CREATE_SINK("log_file.txt",truE); logger_t logger; BOOST_LOG_SEV(logger,tracE) << "text message"; return 0; }
结果:
[] TRACE - text message
以上是大佬教程为你收集整理的在Boost Log中,如何使用格式字符串格式化自定义severity_level?全部内容,希望文章能够帮你解决在Boost Log中,如何使用格式字符串格式化自定义severity_level?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。