9 releases (breaking)
0.7.0 | Jan 8, 2024 |
---|---|
0.6.4 | Nov 15, 2023 |
0.6.1 | Sep 19, 2023 |
0.5.0 | May 6, 2023 |
0.1.0 | Feb 5, 2021 |
#4 in #logstash
623 downloads per month
36KB
934 lines
tracing-logstash
The absolute minimum amount of code I could get away with for writing tracing messages/logs in the https://github.com/logstash/logstash-logback-encoder#standard-fields format.
Currently built for use in a single application with a single log consumer.
Installation
You can include this library in your Cargo.toml file:
[dependencies]
tracing-logstash = "0.6.1"
Usage
fn main() {
let logger = tracing_logstash::Layer::default()
.event_format(tracing_logstash::logstash::LogstashFormat::default()
.with_constants(vec![
("service.name", "tracing-logstash".to_owned()),
])
);
let env_filter = EnvFilter::try_from_default_env()
.or_else(|_| EnvFilter::try_new("info"))
.unwrap();
let collector = Registry::default().with(logger).with(env_filter);
tracing::subscriber::set_global_default(collector).unwrap();
tracing::info!("Hello, world!");
}
Logstash Format Reference
https://github.com/logstash/logstash-logback-encoder#standard-fields
Sample output (from example app)
{
"@version": "1",
"@timestamp": "2023-09-14T09:34:17.233512Z",
"thread_name": "tokio-runtime-worker",
"logger_name": "hyper",
"level": "INFO",
"level_value": 5,
"message": "tracing crate macro",
"some_tag": 43,
"service.name": "tracing-logstash"
}
License
This library is distributed under the terms of the MIT License. See the LICENSE file for details.
Dependencies
~2–2.7MB
~48K SLoC