20个稳定版本 (6个主要版本)
使用旧Rust 2015
7.0.0 | 2024年7月26日 |
---|---|
6.1.1 | 2024年4月18日 |
6.1.0 | 2023年4月26日 |
6.0.1 | 2021年12月19日 |
1.0.3 | 2015年3月11日 |
#60 在 Unix API 中排名
79,385 每月下载量
在 73 个crate中使用(57个直接使用)
40KB
937 行
Rust中发送Syslog
一个用于向Unix套接字、TCP或UDP发送syslog消息的小型库。
安装
syslog可在crates.io上使用,并可以像这样包含在您的Cargo项目中:
[dependencies]
syslog = "^6.0"
文档
参考文档可在此处找到。
示例
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");
}
}
}
结构体syslog::Logger
实现了来自log
crate的Log
,因此可以作为其他日志系统的后端使用
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");
}
有三个函数用于创建记录器
unix
函数通过Unix套接字将消息发送到本地syslog:syslog::unix(formatter)
tcp
函数需要一个远程TCP syslog服务器的地址:tcp(formatter, "127.0.0.1:4242")
udp
函数需要一个本地端口号和远程UDP syslog服务器的地址:udp(formatter, "127.0.0.1:1234", "127.0.0.1:4242")
依赖项
~0.7–24MB
~330K SLoC