diff options
Diffstat (limited to 'src/core/log.cpp')
| -rw-r--r-- | src/core/log.cpp | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/src/core/log.cpp b/src/core/log.cpp index 0411e20..5a0434f 100644 --- a/src/core/log.cpp +++ b/src/core/log.cpp @@ -6,68 +6,68 @@ #include <windows.h> #endif -namespace Donut +namespace Donut { Ref<Logger> Logger::s_logger; - void Logger::init() + auto Logger::init() -> void { s_logger = create_ref<Logger>(); s_logger->set_log_level(LogLevel::Info); s_logger->enable_console_output(true); s_logger->enable_file_output(true); s_logger->set_log_file("logs/donut.log"); - + s_logger->log_message(LogLevel::Info, "Logging system initialized"); } - void Logger::shutdown() + auto Logger::shutdown() -> void { if (s_logger) s_logger->log_message(LogLevel::Info, "Shutting down logging system"); s_logger.reset(); } - Ref<Logger> Logger::get_logger() + auto Logger::get_logger() -> Ref<Logger> { return s_logger; } Logger::Logger() - : m_log_level(LogLevel::Info), - m_console_output(true), + : m_log_level(LogLevel::Info), + m_console_output(true), m_file_output(false) { } - Logger::~Logger() + Logger::~Logger() { if (m_log_file.is_open()) m_log_file.close(); } - void Logger::set_log_file(const std::string& filename) + auto Logger::set_log_file(const std::string& filename) -> void { std::filesystem::path log_path(filename); std::filesystem::create_directories(log_path.parent_path()); - + m_log_file.open(filename, std::ios::app); if (!m_log_file.is_open()) std::cerr << "Failed to open log file: " << filename << std::endl; } - std::string Logger::get_time_stamp() + auto Logger::get_time_stamp() -> std::string { auto now = std::chrono::system_clock::now(); - auto time_t = std::chrono::system_clock::to_time_t(now); - + auto time = std::chrono::system_clock::to_time_t(now); + std::stringstream ss; - ss << std::put_time(std::localtime(&time_t), "%Y-%m-%d %H:%M:%S"); - + ss << std::put_time(std::localtime(&time), "%Y-%m-%d %H:%M:%S"); + return ss.str(); } - std::string Logger::get_log_level_string(LogLevel level) + auto Logger::get_log_level_string(LogLevel level) -> std::string { - switch (level) + switch (level) { case LogLevel::trace: return "TRACE"; case LogLevel::Info: return "INFO"; @@ -78,43 +78,43 @@ namespace Donut } } - void Logger::set_console_color(LogLevel level) + auto Logger::set_console_color(LogLevel level) -> void { #if defined(DONUT_WINDOWS) HANDLE h_console = GetStdHandle(STD_OUTPUT_HANDLE); WORD color; - + switch (level) { case LogLevel::trace: color = FOREGROUND_RED | - FOREGROUND_GREEN | + FOREGROUND_GREEN | FOREGROUND_BLUE; break; case LogLevel::Info: - color = FOREGROUND_GREEN | + color = FOREGROUND_GREEN | FOREGROUND_INTENSITY; break; case LogLevel::Warn: - color = FOREGROUND_RED | - FOREGROUND_GREEN | + color = FOREGROUND_RED | + FOREGROUND_GREEN | FOREGROUND_INTENSITY; break; case LogLevel::Err: - color = FOREGROUND_RED | + color = FOREGROUND_RED | FOREGROUND_INTENSITY; break; case LogLevel::Fatal: - color = FOREGROUND_RED | - FOREGROUND_BLUE | + color = FOREGROUND_RED | + FOREGROUND_BLUE | FOREGROUND_INTENSITY; break; default: - color = FOREGROUND_RED | - FOREGROUND_GREEN | + color = FOREGROUND_RED | + FOREGROUND_GREEN | FOREGROUND_BLUE; break; } - + SetConsoleTextAttribute(h_console, color); #else const char* color_code; @@ -142,12 +142,12 @@ namespace Donut #endif } - void Logger::reset_console_color() + auto Logger::reset_console_color() -> void { #if defined(DONUT_WINDOWS) HANDLE h_console = GetStdHandle(STD_OUTPUT_HANDLE); - SetConsoleTextAttribute(h_console, FOREGROUND_RED | - FOREGROUND_GREEN | + SetConsoleTextAttribute(h_console, FOREGROUND_RED | + FOREGROUND_GREEN | FOREGROUND_BLUE); #else std::cout << "\033[0m"; |
