diff options
author | bunnei <bunneidev@gmail.com> | 2018-04-02 21:19:20 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-02 21:19:20 -0400 |
commit | c2e0820ac2c0b51c0b14af608f4225eec8712f5e (patch) | |
tree | 0a40b6f36c98402748b881fb43986f32d16ffbd8 /src/common/logging/log.h | |
parent | c824648db52aaa4ba1282964889c600e5b030174 (diff) | |
parent | 8529d84f31f94502d97a43a723275049c2cb79d7 (diff) |
Merge pull request #262 from daniellimws/fmtlib-macros
Logging: Add fmtlib-based macros
Diffstat (limited to 'src/common/logging/log.h')
-rw-r--r-- | src/common/logging/log.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/common/logging/log.h b/src/common/logging/log.h index 7f079b20f3..8432628aeb 100644 --- a/src/common/logging/log.h +++ b/src/common/logging/log.h @@ -4,6 +4,7 @@ #pragma once +#include <fmt/format.h> #include "common/common_types.h" namespace Log { @@ -91,7 +92,7 @@ enum class Class : ClassType { }; /// Logs a message to the global logger. -void LogMessage(Class log_class, Level log_level, const char* filename, unsigned int line_nr, +void LogMessage(Class log_class, Level log_level, const char* filename, unsigned int line_num, const char* function, #ifdef _MSC_VER _Printf_format_string_ @@ -103,6 +104,10 @@ void LogMessage(Class log_class, Level log_level, const char* filename, unsigned #endif ; +void FmtLogMessage(Class log_class, Level log_level, const char* filename, unsigned int line_num, + const char* function, const char* format, const fmt::ArgList& args); +FMT_VARIADIC(void, FmtLogMessage, Class, Level, const char*, unsigned int, const char*, const char*) + } // namespace Log #define LOG_GENERIC(log_class, log_level, ...) \ @@ -125,3 +130,28 @@ void LogMessage(Class log_class, Level log_level, const char* filename, unsigned LOG_GENERIC(::Log::Class::log_class, ::Log::Level::Error, __VA_ARGS__) #define LOG_CRITICAL(log_class, ...) \ LOG_GENERIC(::Log::Class::log_class, ::Log::Level::Critical, __VA_ARGS__) + +// Define the fmt lib macros +#ifdef _DEBUG +#define NGLOG_TRACE(log_class, ...) \ + ::Log::FmtLogMessage(::Log::Class::log_class, ::Log::Level::Trace, __FILE__, __LINE__, \ + __func__, __VA_ARGS__) +#else +#define NGLOG_TRACE(log_class, fmt, ...) (void(0)) +#endif + +#define NGLOG_DEBUG(log_class, ...) \ + ::Log::FmtLogMessage(::Log::Class::log_class, ::Log::Level::Debug, __FILE__, __LINE__, \ + __func__, __VA_ARGS__) +#define NGLOG_INFO(log_class, ...) \ + ::Log::FmtLogMessage(::Log::Class::log_class, ::Log::Level::Info, __FILE__, __LINE__, \ + __func__, __VA_ARGS__) +#define NGLOG_WARNING(log_class, ...) \ + ::Log::FmtLogMessage(::Log::Class::log_class, ::Log::Level::Warning, __FILE__, __LINE__, \ + __func__, __VA_ARGS__) +#define NGLOG_ERROR(log_class, ...) \ + ::Log::FmtLogMessage(::Log::Class::log_class, ::Log::Level::Error, __FILE__, __LINE__, \ + __func__, __VA_ARGS__) +#define NGLOG_CRITICAL(log_class, ...) \ + ::Log::FmtLogMessage(::Log::Class::log_class, ::Log::Level::Critical, __FILE__, __LINE__, \ + __func__, __VA_ARGS__) |