Simplify logging

This commit is contained in:
2022-01-17 14:22:37 +01:00
parent e3f81aa807
commit c43dc135ac
4 changed files with 37 additions and 21 deletions

28
Cargo.lock generated
View File

@@ -340,6 +340,7 @@ dependencies = [
"tokio", "tokio",
"tracing", "tracing",
"tracing-actix-web", "tracing-actix-web",
"tracing-bunyan-formatter",
"tracing-log", "tracing-log",
"tracing-subscriber", "tracing-subscriber",
"uuid", "uuid",
@@ -562,6 +563,16 @@ dependencies = [
"version_check", "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]] [[package]]
name = "getrandom" name = "getrandom"
version = "0.2.3" version = "0.2.3"
@@ -1530,6 +1541,23 @@ dependencies = [
"syn", "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]] [[package]]
name = "tracing-core" name = "tracing-core"
version = "0.1.21" version = "0.1.21"

View File

@@ -30,6 +30,7 @@ tracing-log = "0.1.0"
tracing-actix-web = "=0.5.0-beta.9" tracing-actix-web = "=0.5.0-beta.9"
regex = "1.5.0" regex = "1.5.0"
lazy_static = "1.4.0" lazy_static = "1.4.0"
tracing-bunyan-formatter = "0.3.2"
[dev-dependencies] [dev-dependencies]
once_cell = "1.0" once_cell = "1.0"

View File

@@ -1,33 +1,19 @@
use tracing::Level;
use tracing::{subscriber::set_global_default, Subscriber}; use tracing::{subscriber::set_global_default, Subscriber};
use tracing_bunyan_formatter::{BunyanFormattingLayer, JsonStorageLayer};
use tracing_log::LogTracer; 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 { pub fn get_subscriber(env_filter_str: String) -> impl Subscriber + Send + Sync {
let fmt_layer = fmt::layer() let formatting_layer = BunyanFormattingLayer::new("contextswitch-api".into(), TestWriter::new);
.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 env_filter = let env_filter =
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new(env_filter_str)); EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new(env_filter_str));
tracing_subscriber::registry() tracing_subscriber::registry()
.with(fmt_layer)
.with(access_log_layer)
.with(env_filter) .with(env_filter)
.with(JsonStorageLayer)
.with(formatting_layer)
} }
pub fn init_subscriber(subscriber: impl Subscriber + Send + Sync) { pub fn init_subscriber(subscriber: impl Subscriber + Send + Sync) {

View File

@@ -1,7 +1,8 @@
pub mod test_helper; pub mod test_helper;
use contextswitch_api::{taskwarrior, TaskDefinition}; use contextswitch_api::taskwarrior;
use contextswitch_types::Task; use contextswitch_types::Task;
use contextswitch_types::TaskDefinition;
#[tokio::test] #[tokio::test]
async fn list_tasks() { async fn list_tasks() {