12个版本
0.6.0 | 2024年6月19日 |
---|---|
0.5.1 | 2022年12月13日 |
0.5.0 | 2021年12月6日 |
0.4.0 | 2020年7月8日 |
0.1.1 | 2018年5月2日 |
#10 in #slog
43KB
926 行
Loggly输出插件为slog
这是Rust中slog日志基础设施的非官方Loggly输出。
使用方法
将以下依赖项添加到您的Cargo.toml文件中
slog-loggly = "0.6.0"
请参阅examples
目录和文档以获取使用示例。
lib.rs
:
这是一个Rust库,提供将日志消息发送到Loggly的slog输出。
注意事项
该输出将所有日志消息序列化为JSON对象。如果您在日志记录器和日志消息中使用键值对,请注意,如果两个键值对具有相同的键,则一个可以覆盖另一个。覆盖遵循以下简单规则
- 派生日志记录器可以覆盖其祖先的键值对。
- 日志消息可以覆盖其日志记录器的键值对。
- 最后指定的键值对覆盖之前指定的所有内容。
使用方法
请注意,Loggly输出是异步的,日志消息在后台发送。如果您的应用程序退出,队列中可能仍有一些日志消息。
在异步应用程序中使用Loggly输出
use slog::{debug, error, info, o, warn, Drain, Logger};
use slog_loggly::LogglyDrain;
#[tokio::main]
async fn main() {
// Your Loggly token and tag.
let loggly_token = "your-loggly-token";
let loggly_tag = "some-app";
// Create a custom Loggly drain.
let (drain, mut fhandle) = LogglyDrain::builder(loggly_token, loggly_tag)
.spawn_task()
.unwrap();
// Create a logger.
let logger = Logger::root(drain.fuse(), o!());
debug!(logger, "debug"; "key" => "value");
info!(logger, "info"; "key" => "value");
warn!(logger, "warn"; "key" => "value");
error!(logger, "error"; "key" => "value");
// You can return the flush handle to make sure that all log
// messages get sent before the process terminates.
// fhandle.async_flush().await.unwrap();
}
在普通应用程序中使用Loggly输出
use slog::{debug, error, info, o, warn, Drain, Logger};
use slog_loggly::LogglyDrain;
// Your Loggly token and tag.
let loggly_token = "your-loggly-token";
let loggly_tag = "some-app";
// Create a custom Loggly drain.
let (drain, mut fhandle) = LogglyDrain::builder(loggly_token, loggly_tag)
.spawn_thread()
.unwrap();
// Create a logger.
let logger = Logger::root(drain.fuse(), o!());
debug!(logger, "debug"; "key" => "value");
info!(logger, "info"; "key" => "value");
warn!(logger, "warn"; "key" => "value");
error!(logger, "error"; "key" => "value");
// You can use the flush handle to make sure that all log messages get
// sent before the process terminates.
// fhandle.blocking_flush().unwrap();
依赖项
~5–18MB
~297K SLoC