18 个版本 (9 个破坏性版本)
使用旧的 Rust 2015
0.10.0 | 2018 年 2 月 25 日 |
---|---|
0.9.1 | 2017 年 10 月 11 日 |
0.9.0 | 2017 年 5 月 12 日 |
0.8.0 | 2017 年 2 月 25 日 |
0.2.0 | 2016 年 3 月 29 日 |
#4 在 #fluentd 中
每月下载 28 次
185KB
898 行代码(不含注释)
Fruently
又一个为 Rust 定制的 Fluentd 日志记录器。支持 Rust 1.18.0 以上所有版本。
注意
如果您在 Windows 上使用此库,请安装 Visual Studio 2015 或 2017 以及针对 MSVC API 的 rust 编译器和其包管理器 cargo,可通过 rustup.rs 获取。
然后,按照以下使用说明操作。
使用说明
将其添加到您的 Cargo.toml 中
[dependencies]
fruently = "~0.10.0"
并将其添加到您的 crate 根目录
extern crate fruently;
完整示例
使用 JSON 进行转发
extern crate fruently;
use fruently::fluent::Fluent;
use std::collections::HashMap;
use fruently::forwardable::JsonForwardable;
fn main() {
let mut obj: HashMap<String, String> = HashMap::new();
obj.insert("name".to_string(), "fruently".to_string());
let fruently = Fluent::new("127.0.0.1:24224", "test");
match fruently.post(&obj) {
Err(e) => println!("{:?}", e),
Ok(_) => return,
}
}
使用 msgpack 进行转发
extern crate fruently;
use fruently::fluent::Fluent;
use std::collections::HashMap;
use fruently::forwardable::MsgpackForwardable;
fn main() {
let mut obj: HashMap<String, String> = HashMap::new();
obj.insert("name".to_string(), "fruently".to_string());
let fruently = Fluent::new("127.0.0.1:24224", "test");
match fruently.post(&obj) {
Err(e) => println!("{:?}", e),
Ok(_) => return,
}
}
异步转发
Fruently 没有异步 API,因为 Rust 有 std::thread::spawn
函数可以将同步 API 转换为异步 API。
如果您想异步将记录发送到 Fluentd,请考虑使用 std::thread::spawn
,例如:异步示例。
向后兼容性
使用 Fluentd v0.12,您必须指定 time-as-integer
功能标志
[build-dependencies.fruently]
version = "~0.10.0"
features = ["time-as-integer"]
相关文章
- EventTime: http://www.clear-code.com/blog/2017/5/24.html (ja)
- Fluent Logger Reliability: http://www.clear-code.com/blog/2017/4/28.html (ja)
- 基础: http://www.clear-code.com/blog/2016/4/22.html (ja)
许可
MIT.
依赖
~3–5MB
~99K SLoC