#serde #gelf #logs #logging-framework #logging

log4rs-gelf

TCP处理程序和GELF编码器,与log4rs日志框架配合使用

5个版本

使用旧的Rust 2015

0.1.4 2019年12月2日
0.1.3 2019年12月2日
0.1.2 2019年11月29日
0.1.1 2019年5月14日
0.1.0 2019年5月14日

#1771 in 编码

每月46次下载

BSD-3-Clause

19KB
171

log4rs-gelf

Build Status Latest version Documentation License

log4rs-gelf - 基于serde_gelfgelf_loggerlog4rs的TCP/Gelf追加器。

示例

通过YAML文件配置

appenders:
  ldp:
    additional_fields:
      component: rust-cs
    buffer_duration: 5
    buffer_size: 5
    hostname: 127.0.0.1
    kind: buffer
    level: Informational
    null_character: true
    port: 12202
    use_tls: false
root:
  appenders:
  - ldp
  level: info
    log4rs_gelf::init_file("/tmp/log4rs.yml", None).unwrap();

编程构造配置

use serde_gelf::GelfLevel;
use serde_value::Value;
use log4rs::config::{Config, Appender, Root};
use log::LevelFilter;

fn main() {
   let buffer = log4rs_gelf::BufferAppender::builder()
       .set_level(GelfLevel::Informational)
       .set_hostname("localhost")
       .set_port(12202)
       .set_use_tls(false)
       .set_null_character(true)
       .set_buffer_size(Some(5))
       .set_buffer_duration(Some(5))
       .put_additional_field("component", Value::String("rust-cs".to_string()))
       .build()
       .unwrap();

   let config = Config::builder()
       .appender(Appender::builder().build("gelf", Box::new(buffer)))
       .build(Root::builder().appender("gelf").build(LevelFilter::Info))
       .unwrap();

   log4rs_gelf::init_config(config).unwrap();

   // Do whatever

   log4rs_gelf::flush().expect("Failed to send buffer, log records can be lost !");
}

OVH日志数据平台

您可以激活OVH LDP功能,包括字段类型和预配置的处理程序

[dependencies]
log4rs_gelf = { version = "0.1", features = ["ovh-ldp"] }

然后构建追加器

let buffer = BufferAppender::builder("gra1.logs.ovh.com","XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")
    .put_additional_field("component", Value::String("rust-cs".to_string()))
    .build()
    .unwrap();

许可证

BSD 3-Clause Licensehttps://opensource.org/licenses/BSD-3-Clause下授权

依赖关系

~3–13MB
~164K SLoC