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 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