9#include "../log/sink.hpp"
24 static_assert(Capacity > 0,
"Capacity must be at least 1 byte");
27 using write_fn_t = void (*)(
int priority, microfmt::string_view message)
noexcept;
41 const auto out = buffer.
as_sink();
42 if (!msg.logger_name.empty()) {
46 write_fn_(priority_for(msg.lvl), buffer.
view());
51 RELOCO_BEGIN_UNSAFE_CODE
52 static void write_to_syslog(
int priority, microfmt::string_view message)
noexcept {
53 RELOCO_BEGIN_UNSAFE_BUFFER_USAGE;
55 ::syslog(priority,
"%.*s",
static_cast<int>(message.size()), message.data());
57 RELOCO_END_UNSAFE_BUFFER_USAGE;
61 static int priority_for(
level lvl)
noexcept {
92 static void log(value_ref<context_type> ctx,
const log_msg &msg)
noexcept { ctx->log_impl(msg); }
Output sink that stores formatted characters in an internal fixed-size stack/inline buffer.
Definition microfmt.hpp:185
constexpr microfmt::string_view view() const &noexcept RELOCO_LIFETIMEBOUND
Returns a string view over the characters written so far.
Definition microfmt.hpp:245
RELOCO_END_UNSAFE_BUFFER_USAGE RELOCO_CONSTEXPR20 sink as_sink() &noexcept RELOCO_LIFETIMEBOUND
Creates a type-erased sink adapter pointing to this instance.
Definition microfmt.hpp:236
Type-erased, two-word handle to a log sink backend, plus the severity threshold below which records a...
Definition sink.hpp:73
Adapter that writes structured records to POSIX syslog.
Definition syslog_sink.hpp:23
constexpr syslog_sink(write_fn_t write_fn=write_to_syslog) noexcept
Definition syslog_sink.hpp:29
void(*)(int priority, microfmt::string_view message) noexcept write_fn_t
Definition syslog_sink.hpp:27
void log_impl(const log_msg &msg) noexcept
Definition syslog_sink.hpp:35
log_sink as_sink() &noexcept RELOCO_LIFETIMEBOUND
Definition syslog_sink.hpp:31
Definition default_log_sink.template.hpp:51
syslog_sink() -> syslog_sink<>
level
Shared log severity levels in ascending order.
Definition log_msg.hpp:22
RELOCO_CONSTEXPR20 void format_to(const sink &out, microfmt::string_view fmt, const Args &...args) noexcept
Definition microfmt.hpp:1766
RELOCO_END_UNSAFE_CODE
Definition remote_object.hpp:132
Structured log record forwarded by a logger to each sink.
Definition log_msg.hpp:69
static void log(value_ref< context_type > ctx, const log_msg &msg) noexcept
Definition syslog_sink.hpp:92
Static customization point describing a log sink backend.
Definition sink.hpp:46
Tag selecting syslog_sink<Capacity> as a log_sink backend.
Definition syslog_sink.hpp:20