#log-format #log-entries #gelf #logs #logging #serde #log-messages

gelf_logger

发送GELF日志条目的最小Rust日志器

7个版本

0.3.0 2024年6月25日
0.2.0 2024年2月14日
0.1.4 2019年12月2日
0.1.3 2019年11月29日
0.1.2 2019年5月23日

#380 in 编码

Download history 20/week @ 2024-04-27 1/week @ 2024-05-04 59/week @ 2024-05-11 88/week @ 2024-05-18 38/week @ 2024-05-25 87/week @ 2024-06-01 32/week @ 2024-06-08 43/week @ 2024-06-15 143/week @ 2024-06-22 63/week @ 2024-06-29 78/week @ 2024-07-06 35/week @ 2024-07-13 53/week @ 2024-07-20 61/week @ 2024-07-27 35/week @ 2024-08-03 48/week @ 2024-08-10

每月 202 下载
用于 log4rs-gelf

自定义许可证

52KB
959 代码行

gelf_logger

Build Status Latest version Documentation License

Graylog扩展日志格式(GELF)是一种避免经典日志格式不足的日志格式。GELF是应用程序内日志记录的一个很好的选择。有多个编程语言和日志框架的库和附加器,因此易于实现。您可以使用GELF将每个异常作为日志消息发送到您的Graylog集群。

该日志记录器将

  1. 使用serde_gelf crate序列化日志条目。
  2. 将结果缓冲到内存中。
  3. 通过TCP/TLS在网络中批量发送。

示例

use std::time::Duration;

use gelf_logger::{gelf_warn, Config, GelfLevel};
use log::info;
use serde_derive::Serialize;

#[derive(Serialize)]
struct Myapp {
    name: String,
    version: String,
}

impl Default for Myapp {
    fn default() -> Myapp {
        Myapp {
            name: env!("CARGO_PKG_NAME").into(),
            version: env!("CARGO_PKG_VERSION").into(),
        }
    }
}

fn main() {
    let cfg = Config::builder()
        .set_hostname("localhost".into())
        .set_port(12202)
        .set_level(GelfLevel::Informational)
        .set_buffer_duration(Duration::from_millis(300))
        .set_buffer_size(500)
        .put_additional_field("myValue".into(), gelf_logger::Value::I64(10))
        .set_null_character(true)
        .build();

    // Initialize logger
    gelf_logger::init(cfg).unwrap();

    // Send log using a macro defined in the create log
    info!("common message");

    // Use a macro from gelf_logger to send additional data
    gelf_warn!(extra: &Myapp::default(), "My app info");

    // make sure all buffered records are sent before exiting
    gelf_logger::flush().unwrap();
}

许可证

根据BSD 3-Clause License或(https://opensource.org/licenses/BSD-3-Clause)授权

依赖关系

~4–33MB
~509K SLoC