Crate syslog_tls

Source
Expand description

Syslog

This crate provides facilities to send log messages via syslog. It supports Unix sockets for local syslog, UDP and TCP for remote servers.

Messages can be passed directly without modification, or in RFC 3164 or RFC 5424 format

The code is available on Github

§Example

use syslog_tls::{Facility, Formatter3164};

let formatter = Formatter3164 {
    facility: Facility::LOG_USER,
    hostname: None,
    process: "myprogram".into(),
    pid: 0,
};

match syslog_tls::unix(formatter) {
    Err(e) => println!("impossible to connect to syslog: {:?}", e),
    Ok(mut writer) => {
        writer.err("hello world").expect("could not write error message");
    }
}

It can be used directly with the log crate as follows:

extern crate log;

use syslog_tls::{Facility, Formatter3164, BasicLogger};
use log::{SetLoggerError, LevelFilter, info};

let formatter = Formatter3164 {
    facility: Facility::LOG_USER,
    hostname: None,
    process: "myprogram".into(),
    pid: 0,
};

let logger = match syslog_tls::unix(formatter) {
    Err(e) => { println!("impossible to connect to syslog: {:?}", e); return; },
    Ok(logger) => logger,
};
log::set_boxed_logger(Box::new(BasicLogger::new(logger)))
        .map(|()| log::set_max_level(LevelFilter::Info));

info!("hello world");

Structs§

BasicLogger
Error
The Error type.
Formatter3164
Formatter5424
Logger
Main logging structure
SyslogMessage

Enums§

ErrorKind
The kind of an error.
Facility
LoggerBackend
Severity

Traits§

LogFormat
ResultExt
Additional methods for Result, for easy interaction with this crate.

Functions§

init
Initializes logging subsystem for log crate
init_tcp
TCP Logger init function compatible with log crate
init_udp
UDP Logger init function compatible with log crate
init_unix
Unix socket Logger init function compatible with log crate
init_unix_custom
Unix socket Logger init function compatible with log crate and user provided socket path
tcp
returns a TCP logger connecting to server
tls
returns a TLS logger connecting to server, using cert checked against host_domain.
udp
returns a UDP logger connecting local and server
unix
Returns a Logger using unix socket to target local syslog ( using /dev/log or /var/run/syslog)
unix_custom
Returns a Logger using unix socket to target local syslog at user provided path

Type Aliases§

Priority
Result
Convenient wrapper around std::Result.
StructuredData
RFC 5424 structured data