diff options
Diffstat (limited to 'include/CommonAPI/Logger.hpp')
-rw-r--r-- | include/CommonAPI/Logger.hpp | 84 |
1 files changed, 17 insertions, 67 deletions
diff --git a/include/CommonAPI/Logger.hpp b/include/CommonAPI/Logger.hpp index 52a55bf..b4047ac 100644 --- a/include/CommonAPI/Logger.hpp +++ b/include/CommonAPI/Logger.hpp @@ -6,19 +6,9 @@ #ifndef COMMONAPI_LOGGER_HPP_ #define COMMONAPI_LOGGER_HPP_ -#ifdef USE_DLT -#include <dlt/dlt.h> -#endif - -#include <cstdint> -#include <fstream> -#include <memory> -#include <mutex> -#include <sstream> - -#include <CommonAPI/Export.hpp> +#include <CommonAPI/LoggerImpl.hpp> -#define COMMONAPI_LOGLEVEL_NONE 0 +#define COMMONAPI_LOGLEVEL_NONE 0 #define COMMONAPI_LOGLEVEL_FATAL 1 #define COMMONAPI_LOGLEVEL_ERROR 2 #define COMMONAPI_LOGLEVEL_WARNING 3 @@ -34,42 +24,42 @@ #if COMMONAPI_LOGLEVEL >= COMMONAPI_LOGLEVEL_FATAL #define COMMONAPI_FATAL(...) \ - do { Logger::log(Logger::Level::LL_FATAL, __VA_ARGS__); } while (false); + do { Logger::log(LoggerImpl::Level::LL_FATAL, __VA_ARGS__); } while (false); #else #define COMMONAPI_FATAL(...) #endif #if COMMONAPI_LOGLEVEL >= COMMONAPI_LOGLEVEL_ERROR #define COMMONAPI_ERROR(...) \ - do { Logger::log(Logger::Level::LL_ERROR, __VA_ARGS__); } while (false); + do { Logger::log(LoggerImpl::Level::LL_ERROR, __VA_ARGS__); } while (false); #else #define COMMONAPI_ERROR(...) #endif #if COMMONAPI_LOGLEVEL >= COMMONAPI_LOGLEVEL_WARNING #define COMMONAPI_WARNING(...) \ - do { Logger::log(Logger::Level::LL_WARNING, __VA_ARGS__); } while (false); + do { Logger::log(LoggerImpl::Level::LL_WARNING, __VA_ARGS__); } while (false); #else #define COMMONAPI_WARNING(...) #endif #if COMMONAPI_LOGLEVEL >= COMMONAPI_LOGLEVEL_INFO #define COMMONAPI_INFO(...) \ - do { Logger::log(Logger::Level::LL_INFO, __VA_ARGS__); } while (false); + do { Logger::log(LoggerImpl::Level::LL_INFO, __VA_ARGS__); } while (false); #else #define COMMONAPI_INFO(...) #endif #if COMMONAPI_LOGLEVEL >= COMMONAPI_LOGLEVEL_DEBUG #define COMMONAPI_DEBUG(...) \ - do { Logger::log(Logger::Level::LL_DEBUG, __VA_ARGS__); } while (false); + do { Logger::log(LoggerImpl::Level::LL_DEBUG, __VA_ARGS__); } while (false); #else #define COMMONAPI_DEBUG(...) #endif #if COMMONAPI_LOGLEVEL >= COMMONAPI_LOGLEVEL_VERBOSE #define COMMONAPI_VERBOSE(...) \ - do { Logger::log(Logger::Level::LL_VERBOSE, __VA_ARGS__); } while (false); + do { Logger::log(LoggerImpl::Level::LL_VERBOSE, __VA_ARGS__); } while (false); #else #define COMMONAPI_VERBOSE(...) #endif @@ -77,39 +67,39 @@ #else // !WIN32 #define COMMONAPI_FATAL(params...) \ - do { Logger::log(Logger::Level::LL_FATAL, params); } while (false); + do { Logger::log(LoggerImpl::Level::LL_FATAL, params); } while (false); #if COMMONAPI_LOGLEVEL >= COMMONAPI_LOGLEVEL_ERROR #define COMMONAPI_ERROR(params...) \ - do { Logger::log(Logger::Level::LL_ERROR, params); } while (false); + do { Logger::log(LoggerImpl::Level::LL_ERROR, params); } while (false); #else #define COMMONAPI_ERROR(params...) #endif #if COMMONAPI_LOGLEVEL >= COMMONAPI_LOGLEVEL_WARNING #define COMMONAPI_WARNING(params...) \ - do { Logger::log(Logger::Level::LL_WARNING, params); } while (false); + do { Logger::log(LoggerImpl::Level::LL_WARNING, params); } while (false); #else #define COMMONAPI_WARNING(params...) #endif #if COMMONAPI_LOGLEVEL >= COMMONAPI_LOGLEVEL_INFO #define COMMONAPI_INFO(params...) \ - do { Logger::log(Logger::Level::LL_INFO, params); } while (false); + do { Logger::log(LoggerImpl::Level::LL_INFO, params); } while (false); #else #define COMMONAPI_INFO(params...) #endif #if COMMONAPI_LOGLEVEL >= COMMONAPI_LOGLEVEL_DEBUG #define COMMONAPI_DEBUG(params...) \ - do { Logger::log(Logger::Level::LL_DEBUG, params); } while (false); + do { Logger::log(LoggerImpl::Level::LL_DEBUG, params); } while (false); #else #define COMMONAPI_DEBUG(params...) #endif #if COMMONAPI_LOGLEVEL >= COMMONAPI_LOGLEVEL_VERBOSE #define COMMONAPI_VERBOSE(params...) \ - do { Logger::log(Logger::Level::LL_VERBOSE, params); } while (false); + do { Logger::log(LoggerImpl::Level::LL_VERBOSE, params); } while (false); #else #define COMMONAPI_VERBOSE(params...) #endif @@ -120,20 +110,14 @@ namespace CommonAPI { class Logger { public: - COMMONAPI_EXPORT enum class Level : uint8_t { - LL_FATAL = 0, LL_ERROR = 1, LL_WARNING = 2, LL_INFO = 3, LL_DEBUG = 4, LL_VERBOSE = 5 - }; - - COMMONAPI_EXPORT Logger(); - COMMONAPI_EXPORT ~Logger(); template<typename... LogEntries_> - COMMONAPI_EXPORT static void log(Level _level, LogEntries_... _entries) { + COMMONAPI_EXPORT static void log(LoggerImpl::Level _level, LogEntries_... _entries) { #if defined(USE_CONSOLE) || defined(USE_FILE) || defined(USE_DLT) - if (_level < maximumLogLevel_) { + if (LoggerImpl::isLogged(_level)) { std::stringstream buffer; log_intern(buffer, _entries...); - Logger::get()->doLog(_level, buffer.str()); + LoggerImpl::get()->doLog(_level, buffer.str()); } #else (void)_level; @@ -144,11 +128,6 @@ public: COMMONAPI_EXPORT static void init(bool, const std::string &, bool, const std::string &); private: - COMMONAPI_EXPORT static inline Logger *get() { - static Logger theLogger; - return &theLogger; - } - COMMONAPI_EXPORT static void log_intern(std::stringstream &_buffer) { (void)_buffer; } @@ -158,35 +137,6 @@ private: _buffer << _entry; log_intern(_buffer, _moreEntries...); } - - COMMONAPI_EXPORT void doLog(Level _level, const std::string &_message); - -#if defined(USE_CONSOLE) || defined(USE_FILE) || defined(USE_DLT) - static Level stringAsLevel(const std::string &_level); -#endif -#if defined(USE_CONSOLE) || defined(USE_FILE) - static std::string levelAsString(Level _level); -#endif -#ifdef USE_DLT - static DltLogLevelType levelAsDlt(Level _level); -#endif -#if defined(USE_CONSOLE) || defined(USE_FILE) - static std::mutex mutex_; -#endif -#if defined(USE_CONSOLE) || defined(USE_FILE) || defined(USE_DLT) - static Level maximumLogLevel_; -#endif -#ifdef USE_CONSOLE - static bool useConsole_; -#endif -#ifdef USE_FILE - static std::shared_ptr<std::ofstream> file_; -#endif -#ifdef USE_DLT - static bool useDlt_; - DLT_DECLARE_CONTEXT(dlt_); - bool ownAppID_; -#endif }; } // namespace CommonAPI |