10 #ifdef SPDLOG_ENABLE_SYSLOG 12 #include "../details/log_msg.h" 26 class syslog_sink :
public sink
30 syslog_sink(
const std::string &ident =
"",
int syslog_option = 0,
int syslog_facility = LOG_USER)
33 _priorities[
static_cast<size_t>(level::trace)] = LOG_DEBUG;
34 _priorities[
static_cast<size_t>(level::debug)] = LOG_DEBUG;
35 _priorities[
static_cast<size_t>(level::info)] = LOG_INFO;
36 _priorities[
static_cast<size_t>(level::warn)] = LOG_WARNING;
37 _priorities[
static_cast<size_t>(level::err)] = LOG_ERR;
38 _priorities[
static_cast<size_t>(level::critical)] = LOG_CRIT;
39 _priorities[
static_cast<size_t>(level::off)] = LOG_INFO;
42 ::openlog(_ident.empty() ? nullptr : _ident.c_str(), syslog_option, syslog_facility);
45 ~syslog_sink()
override 50 syslog_sink(
const syslog_sink &) =
delete;
51 syslog_sink &operator=(
const syslog_sink &) =
delete;
53 void log(
const details::log_msg &msg)
override 55 ::syslog(syslog_prio_from_level(msg),
"%s", msg.raw.str().c_str());
58 void flush()
override {}
61 std::array<int, 7> _priorities;
63 const std::string _ident;
68 int syslog_prio_from_level(
const details::log_msg &msg)
const 70 return _priorities[
static_cast<size_t>(msg.level)];
Definition: async_logger.h:26