diff --git a/Cargo.lock b/Cargo.lock index 6c0c148..00d04fe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -43,6 +43,15 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + [[package]] name = "anyhow" version = "1.0.58" @@ -664,9 +673,9 @@ dependencies = [ "homedisk-database", "homedisk-server", "homedisk-types", - "log", - "simplelog", "tokio", + "tracing", + "tracing-subscriber", ] [[package]] @@ -1309,6 +1318,15 @@ dependencies = [ "digest", ] +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + [[package]] name = "simple_asn1" version = "0.6.2" @@ -1321,17 +1339,6 @@ dependencies = [ "time 0.3.11", ] -[[package]] -name = "simplelog" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48dfff04aade74dd495b007c831cd6f4e0cee19c344dd9dc0884c0289b70a786" -dependencies = [ - "log", - "termcolor", - "time 0.3.11", -] - [[package]] name = "slab" version = "0.4.6" @@ -1498,15 +1505,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" -[[package]] -name = "termcolor" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" -dependencies = [ - "winapi-util", -] - [[package]] name = "terminal_size" version = "0.1.17" @@ -1537,6 +1535,15 @@ dependencies = [ "syn", ] +[[package]] +name = "thread_local" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +dependencies = [ + "once_cell", +] + [[package]] name = "time" version = "0.1.44" @@ -1722,16 +1729,54 @@ dependencies = [ "cfg-if", "log", "pin-project-lite", + "tracing-attributes", "tracing-core", ] [[package]] -name = "tracing-core" -version = "0.1.27" +name = "tracing-attributes" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7709595b8878a4965ce5e87ebf880a7d39c9afc6837721b21a5a816a8117d921" +checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a713421342a5a666b7577783721d3117f1b69a393df803ee17bb73b1e122a59" +dependencies = [ + "ansi_term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", ] [[package]] @@ -1822,6 +1867,12 @@ dependencies = [ "sha1_smol", ] +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "vcpkg" version = "0.2.15" @@ -1955,15 +2006,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" diff --git a/core/Cargo.toml b/core/Cargo.toml index 10efb7f..6e07df9 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -14,8 +14,8 @@ path = "./src/main.rs" [dependencies] anyhow = "1.0.58" better-panic = "0.3.0" -simplelog = "0.12.0" -log = { version = "0.4.17", features = ["max_level_debug", "release_max_level_warn"] } +tracing-subscriber = "0.3.14" +tracing = { version = "0.1.35", features = ["max_level_debug", "release_max_level_warn"] } tokio = { version = "1.19.2", features = ["rt-multi-thread", "macros"] } homedisk-database = { path = "../database" } homedisk-server = { path = "../server" } diff --git a/core/src/logger.rs b/core/src/logger.rs new file mode 100644 index 0000000..c9408bb --- /dev/null +++ b/core/src/logger.rs @@ -0,0 +1,8 @@ +pub fn init() { + // initialize better_panic + better_panic::install(); + + // initialize tracing + tracing_subscriber::fmt() + .init(); +} diff --git a/core/src/main.rs b/core/src/main.rs index 399b253..5bdd99e 100644 --- a/core/src/main.rs +++ b/core/src/main.rs @@ -3,16 +3,16 @@ use std::{fs::File, path::Path}; use homedisk_database::Database; use homedisk_server::serve_http; use homedisk_types::config::Config; -use log::{info, warn}; +use tracing::{info, warn}; + +mod logger; pub const DATABASE_FILE: &str = "homedisk.db"; #[tokio::main] async fn main() { - // init better_panic - better_panic::install(); - // init logger - init_logger().expect("init logger"); + // initialize logger + logger::init(); // parse config let config = Config::parse().expect("parse config"); @@ -67,24 +67,3 @@ async fn main() { .await .expect("start http server"); } - -fn init_logger() -> anyhow::Result<()> { - use log::LevelFilter; - use simplelog::{ColorChoice, CombinedLogger, Config, TermLogger, TerminalMode, WriteLogger}; - - CombinedLogger::init(vec![ - TermLogger::new( - LevelFilter::Debug, - Config::default(), - TerminalMode::Mixed, - ColorChoice::Auto, - ), - WriteLogger::new( - LevelFilter::Info, - Config::default(), - File::create("logs.log")?, - ), - ])?; - - Ok(()) -}