diff options
| -rw-r--r-- | Cargo.lock | 3 | ||||
| -rw-r--r-- | installer-downloader/Cargo.toml | 5 | ||||
| -rw-r--r-- | installer-downloader/src/lib.rs | 2 | ||||
| -rw-r--r-- | installer-downloader/src/log.rs | 26 | ||||
| -rw-r--r-- | installer-downloader/src/main.rs | 3 |
5 files changed, 35 insertions, 4 deletions
diff --git a/Cargo.lock b/Cargo.lock index 73019fabba..f12769e2f1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2038,7 +2038,8 @@ dependencies = [ "anyhow", "async-trait", "cacao", - "env_logger 0.10.2", + "chrono", + "fern", "insta", "log", "mullvad-paths", diff --git a/installer-downloader/Cargo.toml b/installer-downloader/Cargo.toml index a8d54d2a14..7b04f34474 100644 --- a/installer-downloader/Cargo.toml +++ b/installer-downloader/Cargo.toml @@ -22,8 +22,9 @@ async-trait = "0.1" rand = { version = "0.8.5" } serde = { workspace = true, features = ["derive"] } -# Note: Not using workspace since we want fewer features -env_logger = { version = "0.10.0", default-features = false } + +chrono = { workspace = true, features = ["clock"] } +fern = { version = "0.6", default-features = false } log = { workspace = true } mullvad-update = { path = "../mullvad-update", features = ["client", "native-tls"] } diff --git a/installer-downloader/src/lib.rs b/installer-downloader/src/lib.rs index 13e4759086..bde7683cdc 100644 --- a/installer-downloader/src/lib.rs +++ b/installer-downloader/src/lib.rs @@ -3,6 +3,8 @@ pub mod controller; #[cfg(any(target_os = "windows", target_os = "macos"))] pub mod delegate; #[cfg(any(target_os = "windows", target_os = "macos"))] +pub mod log; +#[cfg(any(target_os = "windows", target_os = "macos"))] pub mod resource; #[cfg(any(target_os = "windows", target_os = "macos"))] pub mod temp; diff --git a/installer-downloader/src/log.rs b/installer-downloader/src/log.rs new file mode 100644 index 0000000000..93ff538700 --- /dev/null +++ b/installer-downloader/src/log.rs @@ -0,0 +1,26 @@ +use chrono::Local; +use fern::Dispatch; +use log::LevelFilter; +use std::{io, path::PathBuf}; + +pub fn init() -> Result<(), fern::InitError> { + Dispatch::new() + .format(|out, message, record| { + out.finish(format_args!( + "{} [{}] {}", + Local::now().format("%Y-%m-%d %H:%M:%S"), + record.level(), + message + )) + }) + .level(LevelFilter::Debug) + .chain(io::stdout()) + .chain(fern::log_file(log_path())?) + .apply()?; + + Ok(()) +} + +fn log_path() -> PathBuf { + std::env::temp_dir().join("mullvad-downloader.log") +} diff --git a/installer-downloader/src/main.rs b/installer-downloader/src/main.rs index f190377d28..7be9b76b2c 100644 --- a/installer-downloader/src/main.rs +++ b/installer-downloader/src/main.rs @@ -10,10 +10,11 @@ mod cacao_impl; mod inner { pub use installer_downloader::controller; pub use installer_downloader::delegate; + pub use installer_downloader::log; pub use installer_downloader::resource; pub fn run() { - env_logger::init(); + log::init().expect("failed to set up logger"); let rt = tokio::runtime::Builder::new_multi_thread() .enable_all() |
