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

Build Status Build status

文档

又一个为 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"]

许可

MIT.

依赖

~3–5MB
~99K SLoC