3 releases
0.1.2 | Apr 25, 2021 |
---|---|
0.1.1 | Apr 2, 2021 |
0.1.0 | Oct 3, 2020 |
#694 in Debugging
Used in unftp
16KB
278 lines
slog-redis
This crate implements a slog drain that outputs to a Redis list.
Useful for centralized logging using a RELK stack (Redis, Elasticsearch, Logstash and Kibana). All log messages are sent to a Redis server, in Logstash message V0 format, ready to be parsed/processed by Logstash.
The format looks like this:
{
"@timestamp": ${timeRFC3339},
"@source_host": ${hostname},
"@message": ${message},
"@fields": {
"level": ${levelLowercase},
"application": ${appName}
... // logged field 1
... // logged field 2
...
}
Example Usage:
use slog::*;
use slog_redis::Builder;
let redis_drain = Builder::new("my-app-name")
.redis_host("localhost")
.redis_key("my_redis_list_key")
.build()
.unwrap();
let drain = slog_async::Async::new(redis_drain.fuse()).build().fuse();
let log = Logger::root(drain, o!());
info!(log, "Send me to {}!", "Redis"; "msg" => "Hello World!");
Dependencies
~5–12MB
~149K SLoC