synops/tools/synops-common/src/logging.rs
vegard 6496434bd3 synops-common: delt lib for alle CLI-verktøy (oppgave 21.16)
Ny crate `tools/synops-common` samler duplisert kode som var
spredt over 13 CLI-verktøy:

- db::connect() — PG-pool fra DATABASE_URL (erstatter 10+ identiske blokker)
- cas::path() — CAS-stioppslag med to-nivå hash-katalog
- cas::root() — CAS_ROOT env med default
- cas::hash_bytes() / hash_file() / store() — SHA-256 hashing og lagring
- cas::mime_to_extension() — MIME → filendelse
- logging::init() — tracing til stderr med env-filter
- types::{NodeRow, EdgeRow, NodeSummary} — delte FromRow-structs

Alle verktøy (unntatt synops-tasks som ikke bruker DB) er refaktorert
til å bruke synops-common. Alle kompilerer og tester passerer.
2026-03-18 10:51:40 +00:00

23 lines
884 B
Rust

//! Standardisert tracing-oppsett for CLI-verktøy.
//!
//! Alle CLI-verktøy logger til stderr med env-filter.
//! RUST_LOG styrer nivå; uten den brukes `{crate_name}=info`.
/// Initialiser tracing med standard oppsett for et CLI-verktøy.
///
/// - Output til stderr (stdout er reservert for verktøyets resultat)
/// - Env-filter fra RUST_LOG, fallback til `{crate_filter}=info`
/// - Uten target-prefix (kortere linjer)
///
/// `crate_filter` bør være crate-navnet med bindestreker erstattet
/// med understreker, f.eks. `"synops_audio"`.
pub fn init(crate_filter: &str) {
tracing_subscriber::fmt()
.with_env_filter(
tracing_subscriber::EnvFilter::try_from_default_env()
.unwrap_or_else(|_| format!("{crate_filter}=info").parse().unwrap()),
)
.with_target(false)
.with_writer(std::io::stderr)
.init();
}