]> OzVa Git service - ozva-cloud/commitdiff
refactor: use logger (#22)
authorsigoden <sigoden@gmail.com>
Sun, 5 Jun 2022 23:13:22 +0000 (07:13 +0800)
committerGitHub <noreply@github.com>
Sun, 5 Jun 2022 23:13:22 +0000 (07:13 +0800)
Cargo.lock
Cargo.toml
src/main.rs
src/server.rs

index b6c42676fe19e7d70a12907d1351a0f40fcf8f78..444fa09de4b1c21712c3c03aec9f170662557028 100644 (file)
@@ -293,11 +293,13 @@ dependencies = [
  "base64",
  "chrono",
  "clap",
+ "env_logger",
  "futures",
  "get_if_addrs",
  "headers",
  "hyper",
  "lazy_static",
+ "log",
  "md5",
  "mime_guess",
  "percent-encoding",
@@ -313,6 +315,16 @@ dependencies = [
  "uuid",
 ]
 
+[[package]]
+name = "env_logger"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
+dependencies = [
+ "humantime",
+ "log",
+]
+
 [[package]]
 name = "event-listener"
 version = "2.5.2"
@@ -573,6 +585,12 @@ version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
 
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
 [[package]]
 name = "hyper"
 version = "0.14.19"
index 81028c05d0779d43052cef9cd91bea2dfb5bd6ff..e1118cbe333e2f996abac8d04fa76c10caa14ab5 100644 (file)
@@ -35,6 +35,8 @@ md5 = "0.7.0"
 lazy_static = "1.4.0"
 uuid = { version = "1.1.1", features = ["v4", "fast-rng"] }
 urlencoding = "2.1.0"
+env_logger = { version = "0.9.0", default-features = false, features = ["humantime"] }
+log = "0.4.17"
 
 [profile.release]
 lto = true
index 793403db4332db5d82f375a57d05e9feca39ec9c..176d7e6c94cbd7c3a3295da695b58cf749c32dbd 100644 (file)
@@ -2,8 +2,14 @@ mod args;
 mod auth;
 mod server;
 
+#[macro_use]
+extern crate log;
+
 pub type BoxResult<T> = Result<T, Box<dyn std::error::Error>>;
 
+use std::env;
+use std::io::Write;
+
 use crate::args::{encode_uri, matches, Args};
 use crate::server::serve;
 
@@ -13,6 +19,16 @@ async fn main() {
 }
 
 async fn run() -> BoxResult<()> {
+    if env::var("RUST_LOG").is_err() {
+        env::set_var("RUST_LOG", "info")
+    }
+    env_logger::builder()
+        .format(|buf, record| {
+            let timestamp = buf.timestamp();
+            writeln!(buf, "[{} {}] {}", timestamp, record.level(), record.args())
+        })
+        .init();
+
     let args = Args::parse(matches())?;
     tokio::select! {
         ret = serve(args) => {
index d17545357c89b21c1f8385fe39344382ddbb0058..123f875e9922a581633cc2c2cd3e59c0ace640a8 100644 (file)
@@ -4,7 +4,7 @@ use crate::{encode_uri, Args, BoxResult};
 use async_walkdir::WalkDir;
 use async_zip::write::{EntryOptions, ZipFileWriter};
 use async_zip::Compression;
-use chrono::{Local, TimeZone, Utc};
+use chrono::{TimeZone, Utc};
 use futures::stream::StreamExt;
 use futures::TryStreamExt;
 use get_if_addrs::get_if_addrs;
@@ -120,20 +120,16 @@ impl InnerService {
         let uri = req.uri().clone();
         let cors = self.args.cors;
 
-        let timestamp = Local::now().format("%d/%b/%Y %H:%M:%S");
         let mut res = match self.handle(req).await {
             Ok(res) => {
-                println!(r#"[{}] "{} {}" - {}"#, timestamp, method, uri, res.status());
+                info!(r#""{} {}" - {}"#, method, uri, res.status());
                 res
             }
             Err(err) => {
                 let mut res = Response::default();
                 let status = StatusCode::INTERNAL_SERVER_ERROR;
                 status!(res, status);
-                eprintln!(
-                    r#"[{}] "{} {}" - {} {}"#,
-                    timestamp, method, uri, status, err
-                );
+                error!(r#""{} {}" - {} {}"#, method, uri, status, err);
                 res
             }
         };
@@ -363,7 +359,7 @@ impl InnerService {
         let path = path.to_owned();
         tokio::spawn(async move {
             if let Err(e) = zip_dir(&mut writer, &path).await {
-                eprintln!("Failed to zip {}, {}", path.display(), e);
+                error!("Failed to zip {}, {}", path.display(), e);
             }
         });
         let stream = ReaderStream::new(reader);