diff --git a/Cargo.lock b/Cargo.lock index 07bf07c..2b4d9e4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -802,6 +802,12 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + [[package]] name = "scoped-futures" version = "0.1.3" @@ -847,6 +853,17 @@ dependencies = [ "syn", ] +[[package]] +name = "serde_json" +version = "1.0.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + [[package]] name = "serde_spanned" version = "0.6.3" @@ -1135,6 +1152,16 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + [[package]] name = "tracing-subscriber" version = "0.3.17" @@ -1142,11 +1169,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" dependencies = [ "nu-ansi-term", + "serde", + "serde_json", "sharded-slab", "smallvec", "thread_local", "tracing-core", "tracing-log", + "tracing-serde", ] [[package]] diff --git a/backend/rvoc-backend/Cargo.toml b/backend/rvoc-backend/Cargo.toml index c9751a9..137dbb9 100644 --- a/backend/rvoc-backend/Cargo.toml +++ b/backend/rvoc-backend/Cargo.toml @@ -17,7 +17,7 @@ tokio = {version = "1.29.1", features = []} # logging and telemetry tracing = "0.1.37" -tracing-subscriber = "0.3.17" +tracing-subscriber = {version = "0.3.17", features = ["fmt", "json"]} tracing-opentelemetry = "0.19.0" # database diff --git a/backend/rvoc-backend/src/bin.rs b/backend/rvoc-backend/src/bin.rs index c868803..4810f14 100644 --- a/backend/rvoc-backend/src/bin.rs +++ b/backend/rvoc-backend/src/bin.rs @@ -4,17 +4,22 @@ use diesel_async::{ pooled_connection::{deadpool::Pool, AsyncDieselConnectionManager}, AsyncPgConnection, }; -use tokio::runtime::Builder; use tracing::{error, info, instrument}; mod configuration; mod error; pub fn main() -> RVocResult<()> { + // Load configuration let configuration = Configuration::from_environment()?; + // Setup tracing + tracing_subscriber::fmt() + .event_format(tracing_subscriber::fmt::format().json()) + .init(); + info!("Building tokio runtime..."); - let runtime = Builder::new_current_thread() + let runtime = tokio::runtime::Builder::new_current_thread() .enable_all() .build() .unwrap_or_else(|e| panic!("Cannot create tokio runtime: {:?}", e));