game_manager_lib\utils/
logger.rs1use std::path::PathBuf;
7use tracing_appender::non_blocking::WorkerGuard;
8use tracing_subscriber::{filter::EnvFilter, fmt, layer::SubscriberExt, util::SubscriberInitExt};
9
10#[cfg(debug_assertions)]
11use tracing_subscriber::Layer;
12
13pub fn init_logging(log_dir: PathBuf) -> WorkerGuard {
14 let file_appender = tracing_appender::rolling::daily(log_dir, "playlite.log");
16
17 let (non_blocking, guard) = tracing_appender::non_blocking(file_appender);
19
20 let registry = tracing_subscriber::registry()
23 .with(EnvFilter::new("warn,game_manager_lib=info,tao=error"))
24 .with(
25 fmt::Layer::default()
26 .with_writer(non_blocking)
27 .with_ansi(false) .with_target(false)
29 .with_file(true)
30 .with_line_number(true),
31 );
32
33 #[cfg(debug_assertions)]
35 let registry = registry.with(
36 fmt::Layer::default()
37 .with_writer(std::io::stdout)
38 .with_filter(tracing_subscriber::filter::LevelFilter::WARN),
39 );
40
41 registry.init();
42
43 guard
44}