use tracing_appender::non_blocking::WorkerGuard;
use tracing_subscriber::fmt::{self, format::FmtSpan};
use tracing_subscriber::prelude::*;
use tracing_appender::rolling;
pub fn setup_tracing_file_console(dir: &str, file: &str) -> WorkerGuard {
let file_appender = rolling::hourly(dir, file);
let (file_non_blocking, guard) =
tracing_appender::non_blocking(file_appender);
let file_layer = fmt::layer()
.with_writer(file_non_blocking)
.with_ansi(false) .with_span_events(FmtSpan::FULL);
let console_layer = fmt::layer()
.with_writer(std::io::stdout) .with_ansi(true) .with_span_events(FmtSpan::FULL);
tracing_subscriber::registry()
.with(file_layer)
.with(console_layer)
.with(tracing_subscriber::filter::LevelFilter::INFO) .init();
guard
}
pub fn setup_tracing_console() {
let console_layer = fmt::layer()
.with_writer(std::io::stdout) .with_ansi(false) .with_span_events(FmtSpan::FULL); tracing_subscriber::registry()
.with(console_layer)
.with(tracing_subscriber::filter::LevelFilter::INFO) .init();
}