aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/logging.rs
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty/src/logging.rs')
-rw-r--r--alacritty/src/logging.rs17
1 files changed, 10 insertions, 7 deletions
diff --git a/alacritty/src/logging.rs b/alacritty/src/logging.rs
index 6bede4e7..42f1536e 100644
--- a/alacritty/src/logging.rs
+++ b/alacritty/src/logging.rs
@@ -8,12 +8,11 @@ use std::fs::{File, OpenOptions};
use std::io::{self, LineWriter, Stdout, Write};
use std::path::PathBuf;
use std::sync::atomic::{AtomicBool, Ordering};
-use std::sync::{Arc, Mutex};
+use std::sync::{Arc, Mutex, OnceLock};
use std::time::Instant;
use std::{env, process};
use log::{self, Level, LevelFilter};
-use once_cell::sync::Lazy;
use winit::event_loop::EventLoopProxy;
use crate::cli::Options;
@@ -35,10 +34,14 @@ pub const LOG_TARGET_CONFIG: &str = "alacritty_config_derive";
const ALACRITTY_EXTRA_LOG_TARGETS_ENV: &str = "ALACRITTY_EXTRA_LOG_TARGETS";
/// User configurable extra log targets to include.
-static EXTRA_LOG_TARGETS: Lazy<Vec<String>> = Lazy::new(|| {
- env::var(ALACRITTY_EXTRA_LOG_TARGETS_ENV)
- .map_or(Vec::new(), |targets| targets.split(';').map(ToString::to_string).collect())
-});
+fn extra_log_targets() -> &'static [String] {
+ static EXTRA_LOG_TARGETS: OnceLock<Vec<String>> = OnceLock::new();
+
+ EXTRA_LOG_TARGETS.get_or_init(|| {
+ env::var(ALACRITTY_EXTRA_LOG_TARGETS_ENV)
+ .map_or(Vec::new(), |targets| targets.split(';').map(ToString::to_string).collect())
+ })
+}
/// List of targets which will be logged by Alacritty.
const ALLOWED_TARGETS: &[&str] = &[
@@ -181,7 +184,7 @@ fn create_log_message(record: &log::Record<'_>, target: &str, start: Instant) ->
fn is_allowed_target(level: Level, target: &str) -> bool {
match (level, log::max_level()) {
(Level::Error, LevelFilter::Trace) | (Level::Warn, LevelFilter::Trace) => true,
- _ => ALLOWED_TARGETS.contains(&target) || EXTRA_LOG_TARGETS.iter().any(|t| t == target),
+ _ => ALLOWED_TARGETS.contains(&target) || extra_log_targets().iter().any(|t| t == target),
}
}