From 40d3c580a64047e26e0c0bd3610b9663beef9410 Mon Sep 17 00:00:00 2001 From: multiplex55 <6619098+multiplex55@users.noreply.github.com> Date: Sun, 24 Aug 2025 20:13:44 -0400 Subject: [PATCH] Use OnceLock for logging guard --- src/logging.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/logging.rs b/src/logging.rs index 89290ed9..359ad0f2 100644 --- a/src/logging.rs +++ b/src/logging.rs @@ -1,8 +1,9 @@ use std::path::PathBuf; +use std::sync::OnceLock; use tracing_appender::non_blocking::WorkerGuard; use tracing_subscriber::{fmt, prelude::*, EnvFilter}; -static mut LOG_GUARD: Option = None; +static LOG_GUARD: OnceLock = OnceLock::new(); /// Initialise logging. In debug builds the default level is `debug` while in /// release builds it falls back to `info`. The level can be overridden via the @@ -24,9 +25,7 @@ pub fn init(debug: bool, log_file: Option) { if let (Some(dir), Some(file)) = (path.parent(), path.file_name()) { let file_appender = tracing_appender::rolling::never(dir, file); let (nb, guard) = tracing_appender::non_blocking(file_appender); - unsafe { - LOG_GUARD = Some(guard); - } + let _ = LOG_GUARD.set(guard); let file_layer = fmt::layer().with_ansi(false).with_writer(nb); let _ = tracing_subscriber::registry() .with(filter)