From 09bbf1a2edcedeea7f4a8ddf3cec9196b46be711 Mon Sep 17 00:00:00 2001 From: status102 <102887808+status102@users.noreply.github.com> Date: Mon, 2 Jun 2025 21:23:53 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20LogDebug,=20LogTrace,=20LogInfo,=20?= =?UTF-8?q?LogWarn,=20LogError=E8=A1=A5=E4=B8=8Ascope=E8=BE=93=E5=87=BA=20?= =?UTF-8?q?(#12855)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/Utils/Logger.hpp | 54 ++++++++++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 5 deletions(-) diff --git a/src/MaaCore/Utils/Logger.hpp b/src/MaaCore/Utils/Logger.hpp index 5e2a44261f..123ac547b0 100644 --- a/src/MaaCore/Utils/Logger.hpp +++ b/src/MaaCore/Utils/Logger.hpp @@ -679,6 +679,36 @@ public: #undef LOGGER_FUNC_WITH_LEVEL + template + auto error_(args_t&&... args) + { + return stream(level::error, m_scopes.next(), std::forward(args)...); + } + + template + auto warn_(args_t&&... args) + { + return stream(level::warn, m_scopes.next(), std::forward(args)...); + } + + template + auto info_(args_t&&... args) + { + return stream(level::info, m_scopes.next(), std::forward(args)...); + } + + template + auto debug_(args_t&&... args) + { + return stream(level::debug, m_scopes.next(), std::forward(args)...); + } + + template + auto trace_(args_t&&... args) + { + return stream(level::trace, m_scopes.next(), std::forward(args)...); + } + template inline int push(Args&&... args) { @@ -826,6 +856,20 @@ private: trace("-----------------------------"); } + template + auto stream(level lv, args_t&&... args) + { +#ifdef ASST_DEBUG + return LogStream( + std::unique_lock { m_trace_mutex }, + ostreams { console_ostream(std::cout), m_of }, + lv, + std::forward(args)...); +#else + return LogStream(std::unique_lock { m_trace_mutex }, m_of, lv, std::forward(args)...); +#endif + } + detail::scope_slice m_scopes; std::filesystem::path m_directory; @@ -898,11 +942,11 @@ private: #define _CatVarNameWithLine(Var) _Cat(Var, __LINE__) #define Log asst::Logger::get_instance() -#define LogDebug Log << asst::Logger::level::debug -#define LogTrace Log << asst::Logger::level::trace -#define LogInfo Log << asst::Logger::level::info -#define LogWarn Log << asst::Logger::level::warn -#define LogError Log << asst::Logger::level::error +#define LogDebug Log.debug_() +#define LogTrace Log.trace_() +#define LogInfo Log.info_() +#define LogWarn Log.warn_() +#define LogError Log.error_() #define LogTraceScope LoggerAux _CatVarNameWithLine(_func_aux_)