feat(logging): precise and understandable logging
cargo devel CI / cargo CI (push) Successful in 2m9s Details

This commit is contained in:
Christoph J. Scherr 2024-09-08 01:37:05 +02:00
parent 935406f6e2
commit 515e61dc45
4 changed files with 18 additions and 2 deletions

1
.gitignore vendored
View File

@ -19,3 +19,4 @@ Cargo.lock
# Added by cargo # Added by cargo
/target /target
log

View File

@ -15,7 +15,7 @@ repository = "https://git.cscherr.de/PlexSheep/wooly-vault"
anyhow = "1.0.86" anyhow = "1.0.86"
async-trait = "0.1.82" async-trait = "0.1.82"
clap = { version = "4.5.17", features = ["derive"] } clap = { version = "4.5.17", features = ["derive"] }
libpt = { version = "0.7.1", features = ["cli", "log"] } libpt = { version = "0.7.3-alpha.0", features = ["cli", "log"] }
minijinja = { version = "2.2.0", optional = true } minijinja = { version = "2.2.0", optional = true }
rand = "0.8.5" rand = "0.8.5"
serde = { version = "1.0.209", features = ["derive"] } serde = { version = "1.0.209", features = ["derive"] }
@ -29,6 +29,9 @@ tokio = { version = "1.40.0", features = [
"rt", "rt",
"sync", "sync",
] } ] }
tracing = "0.1.40"
tracing-appender = "0.2.3"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
warp = { version = "0.3.7", optional = true } warp = { version = "0.3.7", optional = true }
[features] [features]

View File

@ -4,6 +4,7 @@ use std::sync::Arc;
use anyhow::Result; use anyhow::Result;
use libpt::log::error; use libpt::log::error;
use libpt::log::info; use libpt::log::info;
use libpt::log::tracing;
use libpt::log::warn; use libpt::log::warn;
use minijinja::context; use minijinja::context;
use minijinja::Environment; use minijinja::Environment;
@ -53,7 +54,15 @@ pub async fn serve(text: Descriptions, vault: VaultRef, config: Config) -> Resul
.map(move || service2.clone()) .map(move || service2.clone())
.and_then(overview) .and_then(overview)
.or(warp::path("styles.css").and_then(styles)) .or(warp::path("styles.css").and_then(styles))
.recover(handle_rejection); .recover(handle_rejection)
.with(warp::trace(|info| {
// Create a span using tracing macros
tracing::info_span!(
"admin",
method = %info.method(),
path = %info.path(),
)
}));
warp::serve(routes) warp::serve(routes)
.run(service.config.addr_admin.unwrap()) .run(service.config.addr_admin.unwrap())

View File

@ -11,7 +11,10 @@ async fn main() -> Result<()> {
let _logger = libpt::log::Logger::builder() let _logger = libpt::log::Logger::builder()
.set_level(conf.verbosity.level()) .set_level(conf.verbosity.level())
.display_time(false) .display_time(false)
.log_to_file(true)
.log_dir("./log".into())
.build()?; .build()?;
debug!("logger active"); debug!("logger active");
info!("Configuration: {conf:?}"); info!("Configuration: {conf:?}");