core logger support multiple level + switch ixbots to user corelogger instead of spdlog
This commit is contained in:
		| @@ -1,14 +1,44 @@ | ||||
| #include "ixcore/utils/IXCoreLogger.h" | ||||
| /* | ||||
|  *  IXCoreLogger.cpp | ||||
|  *  Author: Thomas Wells, Benjamin Sergeant | ||||
|  *  Copyright (c) 2019-2020 Machine Zone, Inc. All rights reserved. | ||||
|  */ | ||||
|  | ||||
| #include "ixcore/utils/IXCoreLogger.h" | ||||
|  | ||||
| namespace ix | ||||
| { | ||||
|     // Default do nothing logger | ||||
|     IXCoreLogger::LogFunc IXCoreLogger::_currentLogger = [](const char* /*msg*/) {}; | ||||
|     // Default do a no-op logger | ||||
|     CoreLogger::LogFunc CoreLogger::_currentLogger = [](const char*, LogLevel) {}; | ||||
|  | ||||
|     void IXCoreLogger::Log(const char* msg) | ||||
|     void CoreLogger::log(const char* msg, LogLevel level) | ||||
|     { | ||||
|         _currentLogger(msg); | ||||
|         _currentLogger(msg, level); | ||||
|     } | ||||
|  | ||||
|     void CoreLogger::debug(const std::string& msg) | ||||
|     { | ||||
|         _currentLogger(msg.c_str(), LogLevel::Debug); | ||||
|     } | ||||
|  | ||||
|     void CoreLogger::info(const std::string& msg) | ||||
|     { | ||||
|         _currentLogger(msg.c_str(), LogLevel::Info); | ||||
|     } | ||||
|  | ||||
|     void CoreLogger::warn(const std::string& msg) | ||||
|     { | ||||
|         _currentLogger(msg.c_str(), LogLevel::Warning); | ||||
|     } | ||||
|  | ||||
|     void CoreLogger::error(const std::string& msg) | ||||
|     { | ||||
|         _currentLogger(msg.c_str(), LogLevel::Error); | ||||
|     } | ||||
|  | ||||
|     void CoreLogger::critical(const std::string& msg) | ||||
|     { | ||||
|         _currentLogger(msg.c_str(), LogLevel::Critical); | ||||
|     } | ||||
|  | ||||
| } // namespace ix | ||||
|   | ||||
| @@ -1,13 +1,36 @@ | ||||
| /* | ||||
|  *  IXCoreLogger.h | ||||
|  *  Author: Thomas Wells, Benjamin Sergeant | ||||
|  *  Copyright (c) 2019-2020 Machine Zone, Inc. All rights reserved. | ||||
|  */ | ||||
|  | ||||
| #pragma once | ||||
| #include <functional> | ||||
| #include <string> | ||||
|  | ||||
| namespace ix | ||||
| { | ||||
|     class IXCoreLogger | ||||
|     enum class LogLevel | ||||
|     { | ||||
|         Debug = 0, | ||||
|         Info = 1, | ||||
|         Warning = 2, | ||||
|         Error = 3, | ||||
|         Critical = 4 | ||||
|     }; | ||||
|  | ||||
|     class CoreLogger | ||||
|     { | ||||
|     public: | ||||
|         using LogFunc = std::function<void(const char*)>; | ||||
|         static void Log(const char* msg); | ||||
|         using LogFunc = std::function<void(const char*, LogLevel level)>; | ||||
|  | ||||
|         static void log(const char* msg, LogLevel level = LogLevel::Debug); | ||||
|  | ||||
|         static void debug(const std::string& msg); | ||||
|         static void info(const std::string& msg); | ||||
|         static void warn(const std::string& msg); | ||||
|         static void error(const std::string& msg); | ||||
|         static void critical(const std::string& msg); | ||||
|  | ||||
|         static void setLogFunction(LogFunc& func) | ||||
|         { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user