Skip to content

A yet another Fluentd logger for Rust. a.k.a. verification of Fluentd's forward protocol playground.

License

Notifications You must be signed in to change notification settings

GiftConnect/fruently

 
 

Repository files navigation

Fruently

Build Status Build status

Documentation

A yet another Fluentd logger for Rust. Any version newer than Rust 1.18.0 is supported.

Note

If you use this library in Windows, please install Visual Studio 2015 or 2017 and rust compiler which is targeted for MSVC API and its package manager, which is called cargo via rustup.rs.

And then, follow the below usage instructions.

Usage

Add this to your Cargo.toml:

[dependencies]
fruently = "~0.10.0"

and this to your crate root:

extern crate fruently;

Complete examples

Forwarding with 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,
    }
}

Forwarding with 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,
    }
}

Forwarding asynchronously

Fruently does not have asynchronous API because Rust has std::thread::spawn function to make asynchronous API from synchronous one.

If you want to send records into Fluentd asynchronously, please consider using std::thread::spawn like: asynchronous example.

Backward compatibility

Using with Fluentd v0.12, you must specify time-as-integer feature flag:

[build-dependencies.fruently]
version = "~0.10.0"
features = ["time-as-integer"]

Related Articles

LICENSE

MIT.

About

A yet another Fluentd logger for Rust. a.k.a. verification of Fluentd's forward protocol playground.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 80.7%
  • TeX 19.0%
  • Ruby 0.3%