Crate privsep_log

Crate privsep_log 

Source
Expand description

Simple async logging crate inspired by OpenBSD’s log.c.

§Examples

The logger is typically started from the programs’s main function:

let _guard = privsep_log::sync_logger("test", true).unwrap();

info!("Started");

The async logger is provided to run inside of a tokio runtime.

use privsep_log::info;

#[tokio::main]
async fn main() {
    let _guard = privsep_log::async_logger("test", true).await.unwrap();

    info!("Started");
}

The sync_logger and async_logger functions take two arguments: the name of the program and the options, an arbitrary variable that implements Into<Config>. A simple boolean can be passed to indicate if logging should happen in foreground via standard error output or in the background via syslog; this is identical to passing the Config struct with the foreground option:

// Lazily initialize the default logger.
privsep_log::init();

// Parse configuration or command-line options...
let args = std::env::args().collect::<Vec<_>>();

debug!("Reading configuration...");
let config = Config {
    foreground: false,
    ..Default::default()
};
let name = &args[0];

// Now start the background logger.
let _guard = privsep_log::sync_logger(name, config).unwrap();

info!("Started");

Macros§

debug
Log a debug level message using current scope logger
error
Log a error level message using current scope logger
info
Log a info level message using current scope logger
trace
Log a trace level message using current scope logger
warn
Log a warning level message using current scope logger

Structs§

Async
Async logger drain that sends log messages to a background task.
Config
Configuration for the logging crate.
LoggerGuard
Wrapper for the global logger guard.
Stderr
Forground logger drain that logs to stderr.
Syslog
Background logger drain to log to syslog.

Enums§

Error
Logging errors.

Traits§

Target
Local trait that can be used by the async logger.

Functions§

async_logger
Return a new global async logger.
init
Initialize the global logger context.
sync_logger
Return a new global sync logger.
verbose
Helper to derive log level from verbosity.