chore: 移除info类型日志的代码详细追踪信息

master
ternaryop8479 2026-02-14 23:58:00 +08:00
parent 00243a090f
commit 7b2699a74f
1 changed files with 129 additions and 129 deletions

View File

@ -1,9 +1,9 @@
#include "utils/logger.h" #include "utils/logger.h"
#include <spdlog/spdlog.h>
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/sinks/basic_file_sink.h>
#include <mutex>
#include <cstring> #include <cstring>
#include <mutex>
#include <spdlog/sinks/basic_file_sink.h>
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/spdlog.h>
namespace are { namespace are {
@ -11,149 +11,149 @@ std::shared_ptr<void> Logger::logger_impl_ = nullptr;
bool Logger::initialized_ = false; bool Logger::initialized_ = false;
void Logger::init(LogLevel min_level) { void Logger::init(LogLevel min_level) {
if (initialized_) { if (initialized_) {
return; return;
} }
try { try {
// Create console sink with color support // Create console sink with color support
auto console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>(); auto console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
console_sink->set_pattern("[%H:%M:%S.%e] [%^%l%$] %v"); console_sink->set_pattern("[%H:%M:%S.%e] [%^%l%$] %v");
// Create logger with console sink // Create logger with console sink
auto logger = std::make_shared<spdlog::logger>("are", console_sink); auto logger = std::make_shared<spdlog::logger>("are", console_sink);
// Set log level // Set log level
switch (min_level) { switch (min_level) {
case LogLevel::ARE_LOG_TRACE: case LogLevel::ARE_LOG_TRACE:
logger->set_level(spdlog::level::trace); logger->set_level(spdlog::level::trace);
break; break;
case LogLevel::ARE_LOG_DEBUG: case LogLevel::ARE_LOG_DEBUG:
logger->set_level(spdlog::level::debug); logger->set_level(spdlog::level::debug);
break; break;
case LogLevel::ARE_LOG_INFO: case LogLevel::ARE_LOG_INFO:
logger->set_level(spdlog::level::info); logger->set_level(spdlog::level::info);
break; break;
case LogLevel::ARE_LOG_WARN: case LogLevel::ARE_LOG_WARN:
logger->set_level(spdlog::level::warn); logger->set_level(spdlog::level::warn);
break; break;
case LogLevel::ARE_LOG_ERROR: case LogLevel::ARE_LOG_ERROR:
logger->set_level(spdlog::level::err); logger->set_level(spdlog::level::err);
break; break;
case LogLevel::ARE_LOG_CRITICAL: case LogLevel::ARE_LOG_CRITICAL:
logger->set_level(spdlog::level::critical); logger->set_level(spdlog::level::critical);
break; break;
} }
// Flush on error or higher // Flush on error or higher
logger->flush_on(spdlog::level::err); logger->flush_on(spdlog::level::err);
// Set as default logger // Set as default logger
spdlog::set_default_logger(logger); spdlog::set_default_logger(logger);
logger_impl_ = logger; logger_impl_ = logger;
initialized_ = true; initialized_ = true;
} catch (const std::exception& e) { } catch (const std::exception &e) {
fprintf(stderr, "[ARE] Failed to initialize logger: %s\n", e.what()); fprintf(stderr, "[ARE] Failed to initialize logger: %s\n", e.what());
} }
} }
void Logger::shutdown() { void Logger::shutdown() {
if (!initialized_) { if (!initialized_) {
return; return;
} }
try { try {
spdlog::shutdown(); spdlog::shutdown();
logger_impl_.reset(); logger_impl_.reset();
initialized_ = false; initialized_ = false;
} catch (const std::exception& e) { } catch (const std::exception &e) {
fprintf(stderr, "[ARE] Error during logger shutdown: %s\n", e.what()); fprintf(stderr, "[ARE] Error during logger shutdown: %s\n", e.what());
} }
} }
void Logger::log(LogLevel level, const char* file, const char* func, void Logger::log(LogLevel level, const char *file, const char *func,
int line, const std::string& message) { int line, const std::string &message) {
if (!initialized_) { if (!initialized_) {
init(); init();
} }
// Extract filename from full path // Extract filename from full path
const char* filename = file; const char *filename = file;
const char* last_slash = nullptr; const char *last_slash = nullptr;
for (const char* p = file; *p; ++p) { for (const char *p = file; *p; ++p) {
if (*p == '/' || *p == '\\') { if (*p == '/' || *p == '\\') {
last_slash = p; last_slash = p;
} }
} }
if (last_slash) { if (last_slash) {
filename = last_slash + 1; filename = last_slash + 1;
} }
// Format message with location information // Format message with location information
std::string formatted = message + " (" + filename + "-" + func + "():" + std::to_string(line) + ")"; std::string formatted = (level != LogLevel::ARE_LOG_INFO) ? message + " (" + filename + "-" + func + "():" + std::to_string(line) + ")" : message;
try { try {
auto logger = std::static_pointer_cast<spdlog::logger>(logger_impl_); auto logger = std::static_pointer_cast<spdlog::logger>(logger_impl_);
switch (level) { switch (level) {
case LogLevel::ARE_LOG_TRACE: case LogLevel::ARE_LOG_TRACE:
logger->trace(formatted); logger->trace(formatted);
break; break;
case LogLevel::ARE_LOG_DEBUG: case LogLevel::ARE_LOG_DEBUG:
logger->debug(formatted); logger->debug(formatted);
break; break;
case LogLevel::ARE_LOG_INFO: case LogLevel::ARE_LOG_INFO:
logger->info(formatted); logger->info(formatted);
break; break;
case LogLevel::ARE_LOG_WARN: case LogLevel::ARE_LOG_WARN:
logger->warn(formatted); logger->warn(formatted);
break; break;
case LogLevel::ARE_LOG_ERROR: case LogLevel::ARE_LOG_ERROR:
logger->error(formatted); logger->error(formatted);
break; break;
case LogLevel::ARE_LOG_CRITICAL: case LogLevel::ARE_LOG_CRITICAL:
logger->critical(formatted); logger->critical(formatted);
break; break;
} }
} catch (const std::exception& e) { } catch (const std::exception &e) {
fprintf(stderr, "[ARE] Logging error: %s\n", e.what()); fprintf(stderr, "[ARE] Logging error: %s\n", e.what());
} }
} }
void Logger::set_level(LogLevel level) { void Logger::set_level(LogLevel level) {
if (!initialized_) { if (!initialized_) {
return; return;
} }
try { try {
auto logger = std::static_pointer_cast<spdlog::logger>(logger_impl_); auto logger = std::static_pointer_cast<spdlog::logger>(logger_impl_);
switch (level) { switch (level) {
case LogLevel::ARE_LOG_TRACE: case LogLevel::ARE_LOG_TRACE:
logger->set_level(spdlog::level::trace); logger->set_level(spdlog::level::trace);
break; break;
case LogLevel::ARE_LOG_DEBUG: case LogLevel::ARE_LOG_DEBUG:
logger->set_level(spdlog::level::debug); logger->set_level(spdlog::level::debug);
break; break;
case LogLevel::ARE_LOG_INFO: case LogLevel::ARE_LOG_INFO:
logger->set_level(spdlog::level::info); logger->set_level(spdlog::level::info);
break; break;
case LogLevel::ARE_LOG_WARN: case LogLevel::ARE_LOG_WARN:
logger->set_level(spdlog::level::warn); logger->set_level(spdlog::level::warn);
break; break;
case LogLevel::ARE_LOG_ERROR: case LogLevel::ARE_LOG_ERROR:
logger->set_level(spdlog::level::err); logger->set_level(spdlog::level::err);
break; break;
case LogLevel::ARE_LOG_CRITICAL: case LogLevel::ARE_LOG_CRITICAL:
logger->set_level(spdlog::level::critical); logger->set_level(spdlog::level::critical);
break; break;
} }
} catch (const std::exception& e) { } catch (const std::exception &e) {
fprintf(stderr, "[ARE] Error setting log level: %s\n", e.what()); fprintf(stderr, "[ARE] Error setting log level: %s\n", e.what());
} }
} }
} // namespace are } // namespace are