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

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

The concrete io::Write implementation returned by make_writer. Read more

Returns an instance of Writer. Read more

Returns a Writer for writing data from the span or event described by the provided Metadata. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

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 verbosethanLevel::INFO`. Read more

Wraps self and returns a MakeWriter that will only write output for events at or above the provided verbosity Level. Read more

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

Combines self with another type implementing MakeWriter, returning a new MakeWriter that produces writers that write to both outputs. Read more

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.