|
|
@@ -1,30 +1,40 @@
|
|
|
-use tracing_subscriber::{FmtSubscriber};
|
|
|
+use std::io;
|
|
|
+use tracing_appender::non_blocking::WorkerGuard;
|
|
|
+use tracing_subscriber::fmt;
|
|
|
+use tracing_subscriber::layer::SubscriberExt;
|
|
|
|
|
|
pub fn init_log_with_debug() {
|
|
|
- final_init(tracing::Level::DEBUG)
|
|
|
+ let _ = final_init(tracing::Level::DEBUG.as_str());
|
|
|
}
|
|
|
|
|
|
pub fn init_log_with_trace() {
|
|
|
- final_init(tracing::Level::TRACE)
|
|
|
+ let _ = final_init(tracing::Level::TRACE.as_str());
|
|
|
}
|
|
|
|
|
|
pub fn init_log_with_info() {
|
|
|
- final_init(tracing::Level::INFO)
|
|
|
+ let _ = final_init(tracing::Level::INFO.as_str());
|
|
|
}
|
|
|
|
|
|
-pub fn final_init(level: tracing::Level) {
|
|
|
- // let filter = EnvFilter::from_default_env()
|
|
|
- // .add_directive("exchanges=trace".parse().unwrap())
|
|
|
- // .add_directive("global=trace".parse().unwrap())
|
|
|
- // .add_directive("standard=trace".parse().unwrap())
|
|
|
- // .add_directive("tests=trace".parse().unwrap())
|
|
|
- // .add_directive("strategy=trace".parse().unwrap());
|
|
|
+pub fn final_init(level: &str) -> WorkerGuard {
|
|
|
+ let file_appender = tracing_appender::rolling::daily("./logs", "as-debug.log");
|
|
|
+ let (non_blocking, guard) = tracing_appender::non_blocking(file_appender);
|
|
|
|
|
|
- let subscriber = FmtSubscriber::builder()
|
|
|
- // .with_env_filter(filter)
|
|
|
- .with_max_level(level)
|
|
|
- .with_span_events(tracing_subscriber::fmt::format::FmtSpan::FULL)
|
|
|
- .finish();
|
|
|
+ let fmt_layer = fmt::layer()
|
|
|
+ .with_target(false)
|
|
|
+ .with_level(true)
|
|
|
+ .with_writer(io::stdout);
|
|
|
|
|
|
+ let file_layer = fmt::layer()
|
|
|
+ .with_target(true)
|
|
|
+ .with_ansi(false)
|
|
|
+ .with_level(true)
|
|
|
+ .with_writer(non_blocking.clone());
|
|
|
+
|
|
|
+ let subscriber = tracing_subscriber::Registry::default()
|
|
|
+ .with(fmt_layer)
|
|
|
+ .with(file_layer)
|
|
|
+ .with(tracing_subscriber::EnvFilter::new(level));
|
|
|
tracing::subscriber::set_global_default(subscriber).unwrap();
|
|
|
+
|
|
|
+ return guard;
|
|
|
}
|