11 enum class Level { DEBUG, INFO, WARNING, CRITICAL };
32 static std::string level_to_string(Level level);
33 static std::string domain_to_string(Domain domain);
35 static void log_debug(
const std::string &message, Domain domain = Domain::UNSPECIFIED,
36 const std::string &detail =
"");
37 static void log_info(
const std::string &message, Domain domain = Domain::UNSPECIFIED,
38 const std::string &detail =
"");
39 static void log_warning(
const std::string &message, Domain domain = Domain::UNSPECIFIED,
40 const std::string &detail =
"");
41 static void log_critical(
const std::string &message, Domain domain = Domain::UNSPECIFIED,
42 const std::string &detail =
"");
46 Item(uint64_t s, Level l,
const std::string &msg, Domain dom = Domain::UNSPECIFIED,
const std::string &det =
"")
47 : seq(s), level(l), message(msg), domain(dom), detail(det)
54 Domain domain = Domain::UNSPECIFIED;
58 typedef std::function<void(
const Item &it)> log_handler_t;
60 void log(Level level,
const std::string &message, Domain domain = Domain::UNSPECIFIED,
61 const std::string &detail =
"");
62 void set_log_handler(log_handler_t handler);
65 log_handler_t handler =
nullptr;
66 std::deque<Item> buffer;