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 编码
每月 202 下载
用于 log4rs-gelf
52KB
959 代码行
gelf_logger
Graylog扩展日志格式(GELF)是一种避免经典日志格式不足的日志格式。GELF是应用程序内日志记录的一个很好的选择。有多个编程语言和日志框架的库和附加器,因此易于实现。您可以使用GELF将每个异常作为日志消息发送到您的Graylog集群。
该日志记录器将
- 使用serde_gelf crate序列化日志条目。
- 将结果缓冲到内存中。
- 通过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