Sending to Syslog in Rust

Build Status Coverage Status

A small library to write to local syslog.

Installation

syslog is available on crates.io and can be included in your Cargo enabled project like this:

toml [dependencies] syslog = "^4.0"

documentation

Reference documentation is available here.

Example

```rust extern crate syslog;

use syslog::{Facility, Formatter3164};

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

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

The struct syslog::Logger implements Log from the log crate, so it can be used as backend for other logging systems:

```rust extern crate syslog;

[macro_use]

extern crate log;

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

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

let logger = syslog::unix(formatter).expect("could not connect to syslog");
log::set_boxed_logger(Box::new(BasicLogger::new(logger)))
        .map(|()| log::set_max_level(LevelFilter::Info));

info!("hello world");

}

```

There are 3 functions to create loggers: