raphtory_api/core/utils/
logging.rs

1use std::sync::OnceLock;
2use tracing_subscriber::{
3    fmt, fmt::format::FmtSpan, layer::SubscriberExt, util::SubscriberInitExt, EnvFilter, Registry,
4};
5
6pub fn get_log_env(log_level: String) -> EnvFilter {
7    EnvFilter::new(format!(
8        "pometry-storage={},pometry-storage-private={},raphtory={},raphtory-api={},raphtory-benchmark={},raphtory-cypher={},raphtory-graphql={}",
9        log_level, log_level, log_level, log_level, log_level, log_level, log_level
10    ))
11}
12
13pub fn init_global_logger(log_level: String) {
14    static INIT: OnceLock<()> = OnceLock::new();
15
16    INIT.get_or_init(|| {
17        let filter = get_log_env(log_level);
18        let registry = Registry::default()
19            .with(filter)
20            .with(fmt::layer().pretty().with_span_events(FmtSpan::NONE));
21        registry.try_init().ok();
22    });
23}
24
25pub fn global_error_logger() {
26    init_global_logger("ERROR".to_string())
27}
28pub fn global_warn_logger() {
29    init_global_logger("WARN".to_string())
30}
31
32pub fn global_info_logger() {
33    init_global_logger("INFO".to_string())
34}
35
36pub fn global_debug_logger() {
37    init_global_logger("DEBUG".to_string())
38}
39pub fn global_trace_logger() {
40    init_global_logger("TRACE".to_string())
41}
42
43pub fn sysout_debug() {
44    tracing_subscriber::fmt::fmt()
45        .with_max_level(tracing::Level::DEBUG)
46        .with_target(false)
47        .with_span_events(FmtSpan::ENTER | FmtSpan::CLOSE)
48        .init();
49}