75{
76 boost::log::core::get()->add_global_attribute("Scope",
77 boost::log::attributes::named_scope());
78
79 boost::log::core::get()->set_filter(
80 boost::log::trivial::severity >= boost::log::trivial::trace
81 );
82
83
84
85
86 auto fmtTimeStamp = boost::log::expressions::
87 format_date_time<boost::posix_time::ptime>("TimeStamp", "%Y-%m-%d %H:%M:%S.%f");
88
89 auto fmtSeverity = boost::log::expressions::
90 attr<boost::log::trivial::severity_level>("Severity");
91
92 auto fmtScope = boost::log::expressions::format_named_scope("Scope",
93 boost::log::keywords::format = "%n(%f:%l)",
94 boost::log::keywords::iteration = boost::log::expressions::reverse,
95 boost::log::keywords::depth = 2);
96
97 boost::log::formatter logFmt =
98 boost::log::expressions::format("[%1%] (%2%) %3%")
99 % fmtTimeStamp % fmtSeverity
100 % boost::log::expressions::smessage;
101
102
103 _consoleSink = boost::make_shared<boost::log::sinks::synchronous_sink<boost::log::sinks::text_ostream_backend>>();
105
106 boost::shared_ptr<std::ostream> stream{&std::clog, boost::null_deleter{}};
108
110
111
112 _fileSink = boost::make_shared<boost::log::sinks::asynchronous_sink<boost::log::sinks::text_file_backend>>(
113 boost::log::keywords::target = "logs",
114 boost::log::keywords::file_name = "logs/log_%Y-%m-%d_%H-%M-%S.%N.log",
115 boost::log::keywords::rotation_size = 10 * 1024 * 1024,
116 boost::log::keywords::min_free_space = 30 * 1024 * 1024,
117 boost::log::keywords::open_mode = std::ios_base::app,
118 boost::log::keywords::start_thread = false);
119
121
122 _fileSink->locked_backend()->auto_flush(
true);
123
124
125 boost::log::core::get()->add_sink(
_fileSink);
126
127
128 boost::log::add_common_attributes();
129
131}
boost::shared_ptr< boost::log::sinks::asynchronous_sink< boost::log::sinks::text_file_backend > > _fileSink
Definition: Logger.hpp:73
void colored_formatter(boost::log::record_view const &rec, boost::log::formatting_ostream &strm)
Definition: Logger.cpp:42