浏览代码

对日志级别更精细的控制

skyfffire 2 年之前
父节点
当前提交
e0bbc18f96
共有 3 个文件被更改,包括 32 次插入25 次删除
  1. 1 1
      Cargo.toml
  2. 19 14
      global/src/log_utils.rs
  3. 12 10
      src/server.rs

+ 1 - 1
Cargo.toml

@@ -12,7 +12,7 @@ exchanges = { path="./exchanges" }
 global = { path="./global" }
 tokio = { version = "1.31.0", features = ["full"] }
 tracing = "0.1"
-tracing-subscriber = "0.3.17"
+tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
 serde = { version = "1.0.188", features = ["derive"] }
 actix-rt = "2.5.0"
 actix-web = "4.0.0-beta.12"

+ 19 - 14
global/src/log_utils.rs

@@ -1,25 +1,30 @@
-use tracing::subscriber;
+use tracing_subscriber::{EnvFilter, FmtSubscriber};
 
 pub fn init_log_with_debug() {
-    let sub = tracing_subscriber::fmt()
-        .with_max_level(tracing::Level::DEBUG)
-        .with_span_events(tracing_subscriber::fmt::format::FmtSpan::FULL)
-        .finish();
-    subscriber::set_global_default(sub).unwrap();
+    final_init(tracing::Level::DEBUG)
 }
 
 pub fn init_log_with_trace() {
-    let sub = tracing_subscriber::fmt()
-        .with_max_level(tracing::Level::TRACE)
-        .with_span_events(tracing_subscriber::fmt::format::FmtSpan::FULL)
-        .finish();
-    subscriber::set_global_default(sub).unwrap();
+    final_init(tracing::Level::TRACE)
 }
 
 pub fn init_log_with_info() {
-    let sub = tracing_subscriber::fmt()
-        .with_max_level(tracing::Level::INFO)
+    final_init(tracing::Level::INFO)
+}
+
+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());
+
+    let subscriber = FmtSubscriber::builder()
+        .with_env_filter(filter)
+        .with_max_level(level)
         .with_span_events(tracing_subscriber::fmt::format::FmtSpan::FULL)
         .finish();
-    subscriber::set_global_default(sub).unwrap();
+
+    tracing::subscriber::set_global_default(subscriber).unwrap();
 }

+ 12 - 10
src/server.rs

@@ -7,6 +7,7 @@ use tokio::sync::Mutex;
 use tracing::debug;
 
 #[derive(Deserialize)]
+#[derive(Debug)]
 struct InputData {
     stop: bool,
 }
@@ -27,13 +28,14 @@ async fn post_handler(quant_arc: web::Data<Arc<Mutex<Quant>>>, input: web::Json<
     HttpResponse::Ok().body(format!("Incremented Value: {}", quant.params.log_level))
 }
 
-pub fn run_server(port: u32, quant_arc: Arc<Mutex<Quant>>) -> Server {
-    return HttpServer::new(move || {
-        App::new()
-            .app_data(web::Data::new(quant_arc.clone()))
-            .service(get_handler)
-            .service(post_handler)
-    })
-    .bind(format!("127.0.0.1:{}", port))?
-    .run();
-}
+// Server要.await才能使用
+// pub fn run_server(port: u32, quant_arc: Arc<Mutex<Quant>>) -> Server {
+//     return HttpServer::new(move || {
+//         App::new()
+//             .app_data(web::Data::new(quant_arc.clone()))
+//             .service(get_handler)
+//             .service(post_handler)
+//     })
+//     .bind(format!("127.0.0.1:{}", port))?
+//     .run();
+// }