diff --git a/include/core/logger.hpp b/include/core/logger.hpp index a927abee..fa8e8158 100644 --- a/include/core/logger.hpp +++ b/include/core/logger.hpp @@ -26,6 +26,10 @@ enum class LogLevel { FATAL }; +// Avoid direct token use of `ERROR` at call sites because Windows headers +// define `ERROR` as a macro. +inline constexpr LogLevel kLogLevelError = LogLevel::ERROR; + class Logger { public: static Logger& getInstance(); @@ -128,7 +132,7 @@ private: #define LOG_ERROR(...) do { \ auto& _wowee_logger = wowee::core::Logger::getInstance(); \ - if (_wowee_logger.shouldLog(wowee::core::LogLevel::ERROR)) { \ + if (_wowee_logger.shouldLog(wowee::core::kLogLevelError)) { \ _wowee_logger.error(__VA_ARGS__); \ } \ } while (0) diff --git a/src/core/logger.cpp b/src/core/logger.cpp index f513b836..cdc1afc6 100644 --- a/src/core/logger.cpp +++ b/src/core/logger.cpp @@ -49,7 +49,7 @@ void Logger::ensureFile() { if (v == "debug") setLogLevel(LogLevel::DEBUG); else if (v == "info") setLogLevel(LogLevel::INFO); else if (v == "warn" || v == "warning") setLogLevel(LogLevel::WARNING); - else if (v == "error") setLogLevel(LogLevel::ERROR); + else if (v == "error") setLogLevel(kLogLevelError); else if (v == "fatal") setLogLevel(LogLevel::FATAL); } std::error_code ec; @@ -83,7 +83,7 @@ void Logger::emitLineLocked(LogLevel level, const std::string& message) { case LogLevel::DEBUG: line << "DEBUG"; break; case LogLevel::INFO: line << "INFO "; break; case LogLevel::WARNING: line << "WARN "; break; - case LogLevel::ERROR: line << "ERROR"; break; + case kLogLevelError: line << "ERROR"; break; case LogLevel::FATAL: line << "FATAL"; break; } diff --git a/src/main.cpp b/src/main.cpp index 97930e30..d3811b3b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -38,7 +38,7 @@ static wowee::core::LogLevel readLogLevelFromEnv() { if (level == "debug") return wowee::core::LogLevel::DEBUG; if (level == "info") return wowee::core::LogLevel::INFO; if (level == "warn" || level == "warning") return wowee::core::LogLevel::WARNING; - if (level == "error") return wowee::core::LogLevel::ERROR; + if (level == "error") return wowee::core::kLogLevelError; if (level == "fatal") return wowee::core::LogLevel::FATAL; return wowee::core::LogLevel::WARNING; }