Struct syslog_tracing::Syslog
source · pub struct Syslog { /* private fields */ }
Expand description
MakeWriter
that logs to syslog
via libc
’s syslog()
function.
Level Mapping
tracing
Level
s are mapped to syslog
severities as follows:
Level::ERROR => Severity::LOG_ERR,
Level::WARN => Severity::LOG_WARNING,
Level::INFO => Severity::LOG_NOTICE,
Level::DEBUG => Severity::LOG_INFO,
Level::TRACE => Severity::LOG_DEBUG,
Note: the mapping is lossless, but the corresponding syslog
severity
names differ from tracing
’s level names towards the bottom. syslog
does not have a level lower than LOG_DEBUG
, so this is unavoidable.
Examples
Initializing a global logger that writes to syslog
with an identity of example-program
and the default syslog
options and facility:
let identity = std::ffi::CStr::from_bytes_with_nul(b"example-program\0").unwrap();
let (options, facility) = Default::default();
let syslog = syslog_tracing::Syslog::new(identity, options, facility).unwrap();
tracing_subscriber::fmt().with_writer(syslog).init();
Implementations§
source§impl Syslog
impl Syslog
sourcepub fn new(
identity: impl Into<Cow<'static, CStr>>,
options: Options,
facility: Facility
) -> Option<Self>
pub fn new( identity: impl Into<Cow<'static, CStr>>, options: Options, facility: Facility ) -> Option<Self>
Creates a [tracing
] MakeWriter
that writes to syslog
.
This calls libc::openlog()
to initialize the logger. The corresponding
libc::closelog()
call happens when the returned logger is dropped.
If a logger already exists, returns None
.
Examples
Creating a syslog
MakeWriter
with an identity of example-program
and
the default syslog
options and facility:
use syslog_tracing::Syslog;
let identity = std::ffi::CStr::from_bytes_with_nul(b"example-program\0").unwrap();
let (options, facility) = Default::default();
let syslog = Syslog::new(identity, options, facility).unwrap();
Two loggers cannot coexist, since libc::syslog()
writes to a global logger:
let syslog = Syslog::new(identity, options, facility).unwrap();
assert!(Syslog::new(identity, options, facility).is_none());
sourcepub fn invalid_chars(self, cfg: InvalidCharAction) -> Self
pub fn invalid_chars(self, cfg: InvalidCharAction) -> Self
Set the action to take when a message cannot be logged as is because it contains invalid characters.
Trait Implementations§
source§impl<'a> MakeWriter<'a> for Syslog
impl<'a> MakeWriter<'a> for Syslog
§type Writer = SyslogWriter
type Writer = SyslogWriter
io::Write
implementation returned by make_writer
.Auto Trait Implementations§
impl RefUnwindSafe for Syslog
impl Send for Syslog
impl Sync for Syslog
impl Unpin for Syslog
impl UnwindSafe for Syslog
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<'a, M> MakeWriterExt<'a> for Mwhere
M: MakeWriter<'a>,
impl<'a, M> MakeWriterExt<'a> for Mwhere
M: MakeWriter<'a>,
source§fn with_max_level(self, level: Level) -> WithMaxLevel<Self>where
Self: Sized,
fn with_max_level(self, level: Level) -> WithMaxLevel<Self>where
Self: Sized,
self
and returns a MakeWriter
that will only write output
for events at or below the provided verbosity Level
. For instance,
Level::TRACE
is considered to be _more verbosethan
Level::INFO`. Read moresource§fn with_min_level(self, level: Level) -> WithMinLevel<Self>where
Self: Sized,
fn with_min_level(self, level: Level) -> WithMinLevel<Self>where
Self: Sized,
self
and returns a MakeWriter
that will only write output
for events at or above the provided verbosity Level
. Read moresource§fn with_filter<F>(self, filter: F) -> WithFilter<Self, F>
fn with_filter<F>(self, filter: F) -> WithFilter<Self, F>
self
with a predicate that takes a span or event’s Metadata
and returns a bool
. The returned MakeWriter
’s
MakeWriter::make_writer_for
method will check the predicate to
determine if a writer should be produced for a given span or event. Read moresource§fn and<B>(self, other: B) -> Tee<Self, B>where
Self: Sized,
B: MakeWriter<'a>,
fn and<B>(self, other: B) -> Tee<Self, B>where
Self: Sized,
B: MakeWriter<'a>,
self
with another type implementing MakeWriter
, returning
a new MakeWriter
that produces writers that write to both
outputs. Read moresource§fn or_else<W, B>(self, other: B) -> OrElse<Self, B>
fn or_else<W, B>(self, other: B) -> OrElse<Self, B>
self
with another type implementing MakeWriter
, returning
a new MakeWriter
that calls other
’s make_writer
if self
’s
make_writer
returns OptionalWriter::none
. Read more