From 95d9e7c5c48a3349223a77f50dfa8e38d1e343ac Mon Sep 17 00:00:00 2001 From: ChestnutYueyue <952134128@qq.com> Date: Mon, 16 Mar 2026 18:55:24 +0800 Subject: [PATCH] =?UTF-8?q?fix(logger):=20=E4=BF=AE=E5=A4=8D=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E6=97=A5=E5=BF=97=E6=97=B6=E9=87=8D=E5=A4=8D=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E5=92=8C=E8=B5=84=E6=BA=90=E9=87=8A=E6=94=BE=E9=A1=BA?= =?UTF-8?q?=E5=BA=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复 Logger::shutdown 中的逻辑错误,避免在未初始化时执行操作。 将资源释放和清理操作移至条件判断之后,确保在记录关闭完成信息前正确释放 spdlog 资源。 --- src/utils/logger.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/utils/logger.cpp b/src/utils/logger.cpp index da8e470..1b85076 100644 --- a/src/utils/logger.cpp +++ b/src/utils/logger.cpp @@ -76,16 +76,17 @@ void Logger::init() { * 记录关闭日志,释放 spdlog 资源,清理 Nintendo Switch 控制台 */ void Logger::shutdown() { - if (initialized_) { - log(LogLevel::Info, "日志系统正在关闭"); - spdlog::shutdown(); - logger_.reset(); -#ifdef __SWITCH__ - consoleExit(NULL); -#endif + if (!initialized_) { + return; } - initialized_ = false; + log(LogLevel::Info, "日志系统关闭完成"); + spdlog::shutdown(); + logger_.reset(); +#ifdef __SWITCH__ + consoleExit(NULL); +#endif + initialized_ = false; } /**