设为首页 加入收藏

TOP

boost log multifile multilog
2014-11-24 09:43:21 】 浏览:3743
Tags:boost log multifile multilog


#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include


namespace logging = boost::log;
namespace src = boost::log::sources;
namespace expr = boost::log::expressions;
namespace keywords = boost::log::keywords;
namespace attrs = boost::log::attributes;
namespace sinks = boost::log::sinks;


using namespace std;


void createModuleOneSink() {
boost::shared_ptr core = logging::core::get();


boost::shared_ptr backend = boost::make_shared<
sinks::text_file_backend>(keywords::file_name =
"ModuleOne_%Y-%m-%d_%H-%M-%S_%N.log",
keywords::rotation_size = 5 * 1024 * 1024,
keywords::time_based_rotation = sinks::file::rotation_at_time_point(
12, 0, 0));


typedef sinks::synchronous_sink sink_t;
boost::shared_ptr sink(new sink_t(backend));
sink->set_formatter(
expr::stream
<< expr::format_date_time (
"TimeStamp", "%Y-%m-%d %H:%M:%S")
<< ": <"
<< logging::trivial::severity
<<"> "
<< expr::attr ("Channel")
<< ":"
<< expr::smessage);
using namespace logging::trivial;
sink->set_filter(expr::attr ("Channel") == "module one"&&logging::trivial::severity>=warning);
core->add_sink(sink);


}


void createModuleTwoSink() {
boost::shared_ptr core = logging::core::get();


boost::shared_ptr backend = boost::make_shared<
sinks::text_file_backend>(keywords::file_name =
"ModuleTwo_%Y-%m-%d_%H-%M-%S_%N.log",
keywords::rotation_size = 5 * 1024 * 1024,
keywords::time_based_rotation = sinks::file::rotation_at_time_point(
12, 0, 0));


typedef sinks::synchronous_sink sink_t;
boost::shared_ptr sink(new sink_t(backend));
sink->set_formatter(
expr::stream
<< expr::format_date_time (
"TimeStamp", "%Y-%m-%d %H:%M:%S")
<< ": <"
<< logging::trivial::severity
<< "> "
<< expr::attr ("Channel")
<<":"
<< expr::smessage);


sink->set_filter(expr::attr ("Channel") == "module two");
core->add_sink(sink);


}


int main(int, char*[]) {
createModuleOneSink();
createModuleTwoSink();


logging::add_common_attributes();


using namespace logging::trivial;


logging::core::get()->set_filter
(
logging::trivial::severity >= logging::trivial::info
);


src::severity_channel_logger std::string> moduleOneLogger(keywords::channel = "module one");
src::severity_channel_logger std::string> moduleTwoLogger(keywords::channel = "module two");


BOOST_LOG_SEV(moduleOneLogger, trace)<< "A trace severity message";
BOOST_LOG_SEV(moduleOneLogger, debug)<< "A debug severity message";
BOOST_LOG_SEV(moduleOneLogger, info)<< "An informational severity message";
BOOST_LOG_SEV(moduleOneLogger, warning)<< "A warning severity message";
BOOST_LOG_SEV(moduleOneLogger, error)<< "An error severity message";
BOOST_LOG_SEV(moduleOneLogger, fatal)<< "A fatal severity message";


BOOST_LOG_SEV(moduleTwoLogger, info)<< "An informational severity message";
BOOST_LOG_SEV(moduleTwoLogger, fatal)<< "An informational severity message";
BOOST_LOG_SEV(moduleOneLogger, trace)<< "A trace severity message";


return 0;
}



2014-02-25 22:10:20: module one:A warning severity message
2014-02-25 22:10:20: module one:An error severity message
2014-02-25 22:10:20: module one:A fatal severity message


2014-02-25 22:10:20: module two:An informational severity message
2014-02-25 22:10:20: module two:An informational severity message

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇最大子数组 下一篇1427 - Parade (dp+单调队列)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目