chore: 移除info类型日志的代码详细追踪信息
parent
00243a090f
commit
7b2699a74f
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue