From 7b2699a74f70cda86c59fa2e42dd36f70d863c01 Mon Sep 17 00:00:00 2001 From: ternaryop8479 Date: Sat, 14 Feb 2026 23:58:00 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E7=A7=BB=E9=99=A4info=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=97=A5=E5=BF=97=E7=9A=84=E4=BB=A3=E7=A0=81=E8=AF=A6?= =?UTF-8?q?=E7=BB=86=E8=BF=BD=E8=B8=AA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/logger.cpp | 258 +++++++++++++++++++++---------------------- 1 file changed, 129 insertions(+), 129 deletions(-) diff --git a/src/utils/logger.cpp b/src/utils/logger.cpp index 98d390f..0dc9bb7 100644 --- a/src/utils/logger.cpp +++ b/src/utils/logger.cpp @@ -1,9 +1,9 @@ #include "utils/logger.h" -#include -#include -#include -#include #include +#include +#include +#include +#include namespace are { @@ -11,149 +11,149 @@ std::shared_ptr Logger::logger_impl_ = nullptr; bool Logger::initialized_ = false; void Logger::init(LogLevel min_level) { - if (initialized_) { - return; - } + if (initialized_) { + return; + } - try { - // Create console sink with color support - auto console_sink = std::make_shared(); - console_sink->set_pattern("[%H:%M:%S.%e] [%^%l%$] %v"); + try { + // Create console sink with color support + auto console_sink = std::make_shared(); + console_sink->set_pattern("[%H:%M:%S.%e] [%^%l%$] %v"); - // Create logger with console sink - auto logger = std::make_shared("are", console_sink); - - // Set log level - switch (min_level) { - case LogLevel::ARE_LOG_TRACE: - logger->set_level(spdlog::level::trace); - break; - case LogLevel::ARE_LOG_DEBUG: - logger->set_level(spdlog::level::debug); - break; - case LogLevel::ARE_LOG_INFO: - logger->set_level(spdlog::level::info); - break; - case LogLevel::ARE_LOG_WARN: - logger->set_level(spdlog::level::warn); - break; - case LogLevel::ARE_LOG_ERROR: - logger->set_level(spdlog::level::err); - break; - case LogLevel::ARE_LOG_CRITICAL: - logger->set_level(spdlog::level::critical); - break; - } + // Create logger with console sink + auto logger = std::make_shared("are", console_sink); - // Flush on error or higher - logger->flush_on(spdlog::level::err); + // Set log level + switch (min_level) { + case LogLevel::ARE_LOG_TRACE: + logger->set_level(spdlog::level::trace); + break; + case LogLevel::ARE_LOG_DEBUG: + logger->set_level(spdlog::level::debug); + break; + case LogLevel::ARE_LOG_INFO: + logger->set_level(spdlog::level::info); + break; + case LogLevel::ARE_LOG_WARN: + logger->set_level(spdlog::level::warn); + break; + case LogLevel::ARE_LOG_ERROR: + logger->set_level(spdlog::level::err); + break; + case LogLevel::ARE_LOG_CRITICAL: + logger->set_level(spdlog::level::critical); + break; + } - // Set as default logger - spdlog::set_default_logger(logger); - logger_impl_ = logger; - initialized_ = true; + // Flush on error or higher + logger->flush_on(spdlog::level::err); - } catch (const std::exception& e) { - fprintf(stderr, "[ARE] Failed to initialize logger: %s\n", e.what()); - } + // Set as default logger + spdlog::set_default_logger(logger); + logger_impl_ = logger; + initialized_ = true; + + } catch (const std::exception &e) { + fprintf(stderr, "[ARE] Failed to initialize logger: %s\n", e.what()); + } } void Logger::shutdown() { - if (!initialized_) { - return; - } + if (!initialized_) { + return; + } - try { - spdlog::shutdown(); - logger_impl_.reset(); - initialized_ = false; - } catch (const std::exception& e) { - fprintf(stderr, "[ARE] Error during logger shutdown: %s\n", e.what()); - } + try { + spdlog::shutdown(); + logger_impl_.reset(); + initialized_ = false; + } catch (const std::exception &e) { + fprintf(stderr, "[ARE] Error during logger shutdown: %s\n", e.what()); + } } -void Logger::log(LogLevel level, const char* file, const char* func, - int line, const std::string& message) { - if (!initialized_) { - init(); - } +void Logger::log(LogLevel level, const char *file, const char *func, + int line, const std::string &message) { + if (!initialized_) { + init(); + } - // Extract filename from full path - const char* filename = file; - const char* last_slash = nullptr; - - for (const char* p = file; *p; ++p) { - if (*p == '/' || *p == '\\') { - last_slash = p; - } - } - - if (last_slash) { - filename = last_slash + 1; - } + // Extract filename from full path + const char *filename = file; + const char *last_slash = nullptr; - // Format message with location information - std::string formatted = message + " (" + filename + "-" + func + "():" + std::to_string(line) + ")"; + for (const char *p = file; *p; ++p) { + if (*p == '/' || *p == '\\') { + last_slash = p; + } + } - try { - auto logger = std::static_pointer_cast(logger_impl_); - - switch (level) { - case LogLevel::ARE_LOG_TRACE: - logger->trace(formatted); - break; - case LogLevel::ARE_LOG_DEBUG: - logger->debug(formatted); - break; - case LogLevel::ARE_LOG_INFO: - logger->info(formatted); - break; - case LogLevel::ARE_LOG_WARN: - logger->warn(formatted); - break; - case LogLevel::ARE_LOG_ERROR: - logger->error(formatted); - break; - case LogLevel::ARE_LOG_CRITICAL: - logger->critical(formatted); - break; - } - } catch (const std::exception& e) { - fprintf(stderr, "[ARE] Logging error: %s\n", e.what()); - } + if (last_slash) { + filename = last_slash + 1; + } + + // Format message with location information + std::string formatted = (level != LogLevel::ARE_LOG_INFO) ? message + " (" + filename + "-" + func + "():" + std::to_string(line) + ")" : message; + + try { + auto logger = std::static_pointer_cast(logger_impl_); + + switch (level) { + case LogLevel::ARE_LOG_TRACE: + logger->trace(formatted); + break; + case LogLevel::ARE_LOG_DEBUG: + logger->debug(formatted); + break; + case LogLevel::ARE_LOG_INFO: + logger->info(formatted); + break; + case LogLevel::ARE_LOG_WARN: + logger->warn(formatted); + break; + case LogLevel::ARE_LOG_ERROR: + logger->error(formatted); + break; + case LogLevel::ARE_LOG_CRITICAL: + logger->critical(formatted); + break; + } + } catch (const std::exception &e) { + fprintf(stderr, "[ARE] Logging error: %s\n", e.what()); + } } void Logger::set_level(LogLevel level) { - if (!initialized_) { - return; - } + if (!initialized_) { + return; + } - try { - auto logger = std::static_pointer_cast(logger_impl_); - - switch (level) { - case LogLevel::ARE_LOG_TRACE: - logger->set_level(spdlog::level::trace); - break; - case LogLevel::ARE_LOG_DEBUG: - logger->set_level(spdlog::level::debug); - break; - case LogLevel::ARE_LOG_INFO: - logger->set_level(spdlog::level::info); - break; - case LogLevel::ARE_LOG_WARN: - logger->set_level(spdlog::level::warn); - break; - case LogLevel::ARE_LOG_ERROR: - logger->set_level(spdlog::level::err); - break; - case LogLevel::ARE_LOG_CRITICAL: - logger->set_level(spdlog::level::critical); - break; - } - } catch (const std::exception& e) { - fprintf(stderr, "[ARE] Error setting log level: %s\n", e.what()); - } + try { + auto logger = std::static_pointer_cast(logger_impl_); + + switch (level) { + case LogLevel::ARE_LOG_TRACE: + logger->set_level(spdlog::level::trace); + break; + case LogLevel::ARE_LOG_DEBUG: + logger->set_level(spdlog::level::debug); + break; + case LogLevel::ARE_LOG_INFO: + logger->set_level(spdlog::level::info); + break; + case LogLevel::ARE_LOG_WARN: + logger->set_level(spdlog::level::warn); + break; + case LogLevel::ARE_LOG_ERROR: + logger->set_level(spdlog::level::err); + break; + case LogLevel::ARE_LOG_CRITICAL: + logger->set_level(spdlog::level::critical); + break; + } + } catch (const std::exception &e) { + fprintf(stderr, "[ARE] Error setting log level: %s\n", e.what()); + } } } // namespace are