summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2025-02-27 09:53:22 +0100
committerDavid Lönnhager <david.l@mullvad.net>2025-03-05 23:32:25 +0100
commit81939bb9b2ae030c33a37590ec23a5e3f5c3dcee (patch)
treee6efb0a134e47654b74d6a2e4abf5ca4fb137ca5
parent03eec0ba6f3e15bd16ba70828f4bb28c96ec6b5c (diff)
downloadmullvadvpn-81939bb9b2ae030c33a37590ec23a5e3f5c3dcee.tar.xz
mullvadvpn-81939bb9b2ae030c33a37590ec23a5e3f5c3dcee.zip
Add file logging
-rw-r--r--Cargo.lock3
-rw-r--r--installer-downloader/Cargo.toml5
-rw-r--r--installer-downloader/src/lib.rs2
-rw-r--r--installer-downloader/src/log.rs26
-rw-r--r--installer-downloader/src/main.rs3
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()