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
sourceimpl 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());
Trait Implementations
sourceimpl<'a> MakeWriter<'a> for Syslog
impl<'a> MakeWriter<'a> for Syslog
type Writer = SyslogWriter
type Writer = SyslogWriter
The concrete io::Write
implementation returned by make_writer
. Read more
sourcefn make_writer(&'a self) -> Self::Writer
fn make_writer(&'a self) -> Self::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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<'a, M> MakeWriterExt<'a> for M where
M: MakeWriter<'a>,
impl<'a, M> MakeWriterExt<'a> for M where
M: MakeWriter<'a>,
sourcefn with_max_level(self, level: Level) -> WithMaxLevel<Self>
fn with_max_level(self, level: Level) -> WithMaxLevel<Self>
Wraps 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 more
sourcefn with_min_level(self, level: Level) -> WithMinLevel<Self>
fn with_min_level(self, level: Level) -> WithMinLevel<Self>
Wraps self
and returns a MakeWriter
that will only write output
for events at or above the provided verbosity Level
. Read more
sourcefn with_filter<F>(self, filter: F) -> WithFilter<Self, F> where
F: Fn(&Metadata<'_>) -> bool,
fn with_filter<F>(self, filter: F) -> WithFilter<Self, F> where
F: Fn(&Metadata<'_>) -> bool,
Wraps 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 more
sourcefn and<B>(self, other: B) -> Tee<Self, B> where
B: MakeWriter<'a>,
fn and<B>(self, other: B) -> Tee<Self, B> where
B: MakeWriter<'a>,
Combines self
with another type implementing MakeWriter
, returning
a new MakeWriter
that produces writers that write to both
outputs. Read more
sourcefn or_else<W, B>(self, other: B) -> OrElse<Self, B> where
Self: MakeWriter<'a, Writer = EitherWriter<W, Sink>>,
B: MakeWriter<'a>,
W: Write,
fn or_else<W, B>(self, other: B) -> OrElse<Self, B> where
Self: MakeWriter<'a, Writer = EitherWriter<W, Sink>>,
B: MakeWriter<'a>,
W: Write,
Combines 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