Crate serde_gelf

Source
Expand description

§Serde GELF

The Graylog Extended Log Format (GELF) is a log format that avoids the shortcomings of classic log formats. GELF is a great choice for logging from within applications. There are libraries and appenders for many programming languages and logging frameworks so it is easy to implement. You could use GELF to send every exception as a log message to your Graylog cluster.

{
    "facility": "src",
    "file": "examples/src/main.rs",
    "host": "myDesk",
    "level": 1,
    "_levelname": "Alert",
    "line": 21,
    "short_message": "Message with the default level",
    "timestamp": 1554907321.6123526,
    "version": "1.1"
}

§Quickstart

You can start using it by first adding it to your Cargo.toml:

[dependencies]
serde_derive = "1.0"
serde_gelf = "0.1"

Then, create a structure which implement the serde::Serialize trait:

#[macro_use]
extern crate serde_derive;
extern crate serde_gelf;

#[derive(Serialize)]
struct Foo {
    a: u32,
    b: String,
}

fn main() {
    let foo = Foo { a: 15, b: "hello".into() };
    println!("{:?}", serde_gelf::to_flat_dict(&foo).unwrap());
}

Output:

{"_a": U32(15), "_b": String("hello")}

Macros§

gelf_record
Construct a GelfRecord, a struct which follow the GELF Payload Specification.

Structs§

GelfRecord
Structure which represent a log record.

Enums§

GelfLevel
An enum representing the record level which is equal to the standard syslog levels.

Traits§

GelfRecordBuilder
Builder for GelfRecord.
GelfRecordGetter
Trait to access to GelfRecord attributes.
GelfRecordSetter
Trait to update GelfRecord attributes.

Functions§

to_flat_dict
Transform any serializable object into a single level hashmap of key / value.