pub struct Syslog { /* private fields */ }Expand description
MakeWriter that logs to syslog via libc’s syslog() function.
§Level Mapping
tracing Levels 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
Source§type Writer = SyslogWriter
type Writer = SyslogWriter
io::Write implementation returned by make_writer.Auto Trait Implementations§
impl Freeze for Syslog
impl RefUnwindSafe for Syslog
impl Send for Syslog
impl Sync for Syslog
impl Unpin for Syslog
impl UnsafeUnpin 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 verbosethanLevel::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