Aktualizr
C++ SOTA Client
boost_logging.cc
1 #include "logging.h"
2 #include "utilities/config_utils.h"
3 
4 #include <boost/log/utility/setup/console.hpp>
5 
6 namespace logging = boost::log;
7 using boost::log::trivial::severity_level;
8 
9 static severity_level gLoggingThreshold;
10 
11 void LoggerConfig::updateFromPropertyTree(const boost::property_tree::ptree& pt) {
12  CopyFromConfig(loglevel, "loglevel", pt);
13 }
14 
15 void LoggerConfig::writeToStream(std::ostream& out_stream) const { writeOption(out_stream, loglevel, "loglevel"); }
16 
17 int64_t get_curlopt_verbose() { return gLoggingThreshold <= boost::log::trivial::trace ? 1L : 0L; }
18 
19 void logger_init() {
20  gLoggingThreshold = boost::log::trivial::info;
21  logging::add_console_log(std::cout, boost::log::keywords::format = "%Message%",
22  boost::log::keywords::auto_flush = true);
23  boost::log::core::get()->set_filter(boost::log::trivial::severity >= gLoggingThreshold);
24 }
25 
26 void logger_set_threshold(const severity_level threshold) {
27  gLoggingThreshold = threshold;
28  boost::log::core::get()->set_filter(boost::log::trivial::severity >= gLoggingThreshold);
29 }
30 
31 void logger_set_threshold(const LoggerConfig& lconfig) {
32  int loglevel = lconfig.loglevel;
33  if (loglevel < boost::log::trivial::trace) {
34  LOG_WARNING << "Invalid log level: " << loglevel;
35  loglevel = boost::log::trivial::trace;
36  }
37  if (boost::log::trivial::fatal < loglevel) {
38  LOG_WARNING << "Invalid log level: " << loglevel;
39  loglevel = boost::log::trivial::fatal;
40  }
41  logger_set_threshold(static_cast<boost::log::trivial::severity_level>(loglevel));
42 }
43 
44 int loggerGetSeverity() { return static_cast<int>(gLoggingThreshold); }
45 
46 // vim: set tabstop=2 shiftwidth=2 expandtab: