From c43dc135ac537b4c6b995a77abc20b2a9544a7d1 Mon Sep 17 00:00:00 2001 From: David Rousselie Date: Mon, 17 Jan 2022 14:22:37 +0100 Subject: [PATCH] Simplify logging --- Cargo.lock | 28 ++++++++++++++++++++++++++++ Cargo.toml | 1 + src/observability.rs | 26 ++++++-------------------- tests/task.rs | 3 ++- 4 files changed, 37 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index faf9a0b..ef17c87 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -340,6 +340,7 @@ dependencies = [ "tokio", "tracing", "tracing-actix-web", + "tracing-bunyan-formatter", "tracing-log", "tracing-subscriber", "uuid", @@ -562,6 +563,16 @@ dependencies = [ "version_check", ] +[[package]] +name = "gethostname" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4addc164932852d066774c405dbbdb7914742d2b39e39e1a7ca949c856d054d1" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "getrandom" version = "0.2.3" @@ -1530,6 +1541,23 @@ dependencies = [ "syn", ] +[[package]] +name = "tracing-bunyan-formatter" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd99ff040622c69c0fc4bd3ea5fe16630ce46400a79bd41339391b2d416ea24c" +dependencies = [ + "gethostname", + "log", + "serde", + "serde_json", + "time 0.3.5", + "tracing", + "tracing-core", + "tracing-log", + "tracing-subscriber", +] + [[package]] name = "tracing-core" version = "0.1.21" diff --git a/Cargo.toml b/Cargo.toml index 814ef51..f5840aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,6 +30,7 @@ tracing-log = "0.1.0" tracing-actix-web = "=0.5.0-beta.9" regex = "1.5.0" lazy_static = "1.4.0" +tracing-bunyan-formatter = "0.3.2" [dev-dependencies] once_cell = "1.0" diff --git a/src/observability.rs b/src/observability.rs index cc5972d..8beeb59 100644 --- a/src/observability.rs +++ b/src/observability.rs @@ -1,33 +1,19 @@ -use tracing::Level; use tracing::{subscriber::set_global_default, Subscriber}; +use tracing_bunyan_formatter::{BunyanFormattingLayer, JsonStorageLayer}; use tracing_log::LogTracer; -use tracing_subscriber::{filter, fmt, fmt::format, layer::SubscriberExt, EnvFilter, Layer}; +use tracing_subscriber::fmt::TestWriter; +use tracing_subscriber::{layer::SubscriberExt, EnvFilter}; pub fn get_subscriber(env_filter_str: String) -> impl Subscriber + Send + Sync { - let fmt_layer = fmt::layer() - .event_format(format::Format::default().json()) - .fmt_fields(format::JsonFields::new()) - .flatten_event(true) - .with_test_writer(); - - let access_log_layer = fmt::layer() - .event_format(format::Format::default().json()) - .fmt_fields(format::JsonFields::new()) - .flatten_event(true) - .with_test_writer() - .with_span_events(format::FmtSpan::CLOSE) - .with_span_list(false) - .with_filter( - filter::Targets::new().with_target("tracing_actix_web::root_span_builder", Level::INFO), - ); + let formatting_layer = BunyanFormattingLayer::new("contextswitch-api".into(), TestWriter::new); let env_filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new(env_filter_str)); tracing_subscriber::registry() - .with(fmt_layer) - .with(access_log_layer) .with(env_filter) + .with(JsonStorageLayer) + .with(formatting_layer) } pub fn init_subscriber(subscriber: impl Subscriber + Send + Sync) { diff --git a/tests/task.rs b/tests/task.rs index 3a0f822..925bd45 100644 --- a/tests/task.rs +++ b/tests/task.rs @@ -1,7 +1,8 @@ pub mod test_helper; -use contextswitch_api::{taskwarrior, TaskDefinition}; +use contextswitch_api::taskwarrior; use contextswitch_types::Task; +use contextswitch_types::TaskDefinition; #[tokio::test] async fn list_tasks() {