diff --git a/Cargo.lock b/Cargo.lock index 5e9e6a6..f5d21fe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -119,6 +119,7 @@ dependencies = [ "anyhow", "argparse", "bliss-audio", + "chrono", "dirs", "env_logger", "indicatif", @@ -242,6 +243,19 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "chrono" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +dependencies = [ + "libc", + "num-integer", + "num-traits", + "time", + "winapi", +] + [[package]] name = "clang-sys" version = "0.29.3" @@ -496,7 +510,7 @@ checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" dependencies = [ "cfg-if 1.0.0", "libc", - "wasi 0.10.2+wasi-snapshot-preview1", + "wasi 0.10.0+wasi-snapshot-preview1", ] [[package]] @@ -1205,6 +1219,17 @@ dependencies = [ "syn", ] +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + [[package]] name = "transpose" version = "0.2.1" @@ -1259,9 +1284,9 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" +version = "0.10.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "winapi" diff --git a/Cargo.toml b/Cargo.toml index 6479bc8..a693dfc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,4 +18,5 @@ log = "0.4.14" env_logger = "0.8.4" indicatif = "0.16.2" lofty = "0.4.0" -dirs = "1" \ No newline at end of file +dirs = "1" +chrono = "0.4.19" diff --git a/src/main.rs b/src/main.rs index b027ce9..a891303 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,7 +6,10 @@ * **/ use argparse::{ArgumentParser, Store, StoreTrue}; +use chrono::Local; use dirs; +use log::LevelFilter; +use std::io::Write; use std::path::PathBuf; use std::process; mod analyse; @@ -48,14 +51,13 @@ fn main() { arg_parse.parse_args_or_exit(); } - if logging.eq_ignore_ascii_case("trace") || logging.eq_ignore_ascii_case("debug") || logging.eq_ignore_ascii_case("info") || logging.eq_ignore_ascii_case("warn") || logging.eq_ignore_ascii_case("error") { - logging += ",bliss_audio=error"; - env_logger::init_from_env(env_logger::Env::default().filter_or("XXXXXXXX", logging)); - } else { - env_logger::init_from_env(env_logger::Env::default().filter_or("XXXXXXXX", "ERROR")); - log::error!("Invalid log level ({}) supplied", logging); - process::exit(-1); + if !(logging.eq_ignore_ascii_case("trace") || logging.eq_ignore_ascii_case("debug") || logging.eq_ignore_ascii_case("info") || logging.eq_ignore_ascii_case("warn") || logging.eq_ignore_ascii_case("error")) { + logging = String::from("info"); } + let mut builder = env_logger::Builder::from_env(env_logger::Env::default().filter_or("XXXXXXXX", logging)); + builder.filter(Some("bliss_audio"), LevelFilter::Error); + builder.format(|buf, record| writeln!(buf, "[{} {:.1}] {}", Local::now().format("%Y-%m-%d %H:%M:%S"), record.level(), record.args())); + builder.init(); if db_path.len() < 3 { log::error!("Invalid DB path ({}) supplied", db_path);