Crate syslog[−][src]
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::{Facility, Formatter3164};
let formatter = Formatter3164 {
facility: Facility::LOG_USER,
hostname: None,
process: "myprogram".into(),
pid: 0,
};
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");
}
}
It can be used directly with the log crate as follows:
extern crate log;
use syslog::{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::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
Enums
Traits
Functions
Initializes logging subsystem for log crate
TCP Logger init function compatible with log crate
UDP Logger init function compatible with log crate
returns a TCP logger connecting local
and server
returns a UDP logger connecting local
and server