diff --git a/src/debug.cpp b/src/debug.cpp index 2ec16fee2..9d86f63cc 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -300,10 +300,8 @@ bool parse_log_cfg(const char *conf_str, return false; } -void Logger::preinit(bool skip_repeated, log_timestamp_mode show_timestamps) +void Logger::preinit() { - Logger::skip_repeated = skip_repeated; - Logger::show_timestamps = show_timestamps; if (rang::rang_implementation::supportsColor() && rang::rang_implementation::isTerminal(std::cout.rdbuf()) && rang::rang_implementation::isTerminal(std::cerr.rdbuf())) { diff --git a/src/debug.h b/src/debug.h index ed87a5c5d..753f00dbd 100644 --- a/src/debug.h +++ b/src/debug.h @@ -121,7 +121,7 @@ class keyboard_control; // friend class Logger { public: - static void preinit(bool skip_repeated, log_timestamp_mode show_timestamps); + static void preinit(); inline Logger(int l) : level(l) {} inline ~Logger() { rang::fg color = rang::fg::reset; @@ -176,9 +176,9 @@ public: oss << msg; } - inline void set_skip_repeats(bool val) { skip_repeated.store(val, std::memory_order_relaxed); } + inline static void set_skip_repeats(bool val) { skip_repeated.store(val, std::memory_order_relaxed); } - inline void set_timestamp_mode(log_timestamp_mode val) { show_timestamps = val; } + inline static void set_timestamp_mode(log_timestamp_mode val) { show_timestamps = val; } private: int level; std::ostringstream oss; diff --git a/src/host.cpp b/src/host.cpp index a51a5202f..9cb1917c3 100644 --- a/src/host.cpp +++ b/src/host.cpp @@ -330,11 +330,14 @@ static bool parse_opts_set_logging(int argc, char *argv[]) } opterr = saved_opterr; + Logger::preinit(); + if (log_opt != nullptr && !parse_log_cfg(log_opt, &logging_lvl, &logger_skip_repeats, &logger_show_timestamps)) { return false; } log_level = logging_lvl; - Logger::preinit(logger_skip_repeats, logger_show_timestamps); + Logger::set_skip_repeats(logger_skip_repeats); + Logger::set_timestamp_mode(logger_show_timestamps); return true; }