From 28982a1bbddc3d7362b6caac9df01ccb2c9f8c71 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Wed, 30 Apr 2014 22:18:00 +0200 Subject: [PATCH] [DEV] change log system --- eaudiofx/debug.cpp | 5 ++++- eaudiofx/debug.h | 48 ++++++++++++++++++++++++++++++++++------------ test/debug.cpp | 5 ++++- test/debug.h | 47 +++++++++++++++++++++++++++++++++------------ 4 files changed, 79 insertions(+), 26 deletions(-) diff --git a/eaudiofx/debug.cpp b/eaudiofx/debug.cpp index 124a4c2..c1708be 100644 --- a/eaudiofx/debug.cpp +++ b/eaudiofx/debug.cpp @@ -8,5 +8,8 @@ #include -const char * eaudiofxLibName = "eaudiofx "; +int32_t eaudiofx::getLogId(void) { + static int32_t g_val = etk::log::registerInstance("eaudiofx"); + return g_val; +} diff --git a/eaudiofx/debug.h b/eaudiofx/debug.h index 66d40d1..abb315b 100644 --- a/eaudiofx/debug.h +++ b/eaudiofx/debug.h @@ -9,20 +9,44 @@ #ifndef __EAUDIOFX_DEBUG_H__ #define __EAUDIOFX_DEBUG_H__ -#include -#include +#include -extern const char * eaudiofxLibName; +namespace eaudiofx { + int32_t getLogId(void); +}; +// TODO : Review this problem of multiple intanciation of "std::stringbuf sb" +#define EAUDIOFX_BASE(info,data) \ + do { \ + if (info <= etk::log::getLevel(eaudiofx::getLogId())) { \ + std::stringbuf sb; \ + std::ostream tmpStream(&sb); \ + tmpStream << data; \ + etk::log::logStream(eaudiofx::getLogId(), info, __LINE__, __class__, __func__, tmpStream); \ + } \ + } while(0) -#define EAUDIOFX_CRITICAL(data) ETK_CRITICAL(eaudiofxLibName, data) -#define EAUDIOFX_WARNING(data) ETK_WARNING(eaudiofxLibName, data) -#define EAUDIOFX_ERROR(data) ETK_ERROR(eaudiofxLibName, data) -#define EAUDIOFX_INFO(data) ETK_INFO(eaudiofxLibName, data) -#define EAUDIOFX_DEBUG(data) ETK_DEBUG(eaudiofxLibName, data) -#define EAUDIOFX_VERBOSE(data) ETK_VERBOSE(eaudiofxLibName, data) -#define EAUDIOFX_ASSERT(cond,data) ETK_ASSERT(eaudiofxLibName, cond, data) -#define EAUDIOFX_CHECK_INOUT(cond) ETK_CHECK_INOUT(eaudiofxLibName, cond) -#define EAUDIOFX_TODO(cond) ETK_TODO(eaudiofxLibName, cond) +#define EAUDIOFX_CRITICAL(data) EAUDIOFX_BASE(1, data) +#define EAUDIOFX_ERROR(data) EAUDIOFX_BASE(2, data) +#define EAUDIOFX_WARNING(data) EAUDIOFX_BASE(3, data) +#ifdef DEBUG + #define EAUDIOFX_INFO(data) EAUDIOFX_BASE(4, data) + #define EAUDIOFX_DEBUG(data) EAUDIOFX_BASE(5, data) + #define EAUDIOFX_VERBOSE(data) EAUDIOFX_BASE(6, data) + #define EAUDIOFX_TODO(data) EAUDIOFX_BASE(4, "TODO : " << data) +#else + #define EAUDIOFX_INFO(data) do { } while(false) + #define EAUDIOFX_DEBUG(data) do { } while(false) + #define EAUDIOFX_VERBOSE(data) do { } while(false) + #define EAUDIOFX_TODO(data) do { } while(false) +#endif + +#define EAUDIOFX_ASSERT(cond,data) \ + do { \ + if (!(cond)) { \ + EAUDIOFX_CRITICAL(data); \ + assert(!#cond); \ + } \ + } while (0) #endif diff --git a/test/debug.cpp b/test/debug.cpp index 981313f..5820c92 100644 --- a/test/debug.cpp +++ b/test/debug.cpp @@ -9,4 +9,7 @@ #include -const char * applLogName = "ea-fx TT "; +int32_t appl::getLogId(void) { + static int32_t g_val = etk::log::registerInstance("ea-fx TT"); + return g_val; +} diff --git a/test/debug.h b/test/debug.h index 9e3e488..e0b6f9d 100644 --- a/test/debug.h +++ b/test/debug.h @@ -9,21 +9,44 @@ #ifndef __APPL_DEBUG_H__ #define __APPL_DEBUG_H__ -#include -#include +#include -extern const char * applLogName; +namespace appl { + int32_t getLogId(void); +}; +// TODO : Review this problem of multiple intanciation of "std::stringbuf sb" +#define APPL_BASE(info,data) \ + do { \ + if (info <= etk::log::getLevel(appl::getLogId())) { \ + std::stringbuf sb; \ + std::ostream tmpStream(&sb); \ + tmpStream << data; \ + etk::log::logStream(appl::getLogId(), info, __LINE__, __class__, __func__, tmpStream); \ + } \ + } while(0) -#define APPL_CRITICAL(data) ETK_CRITICAL(applLogName, data) -#define APPL_WARNING(data) ETK_WARNING(applLogName, data) -#define APPL_ERROR(data) ETK_ERROR(applLogName, data) -#define APPL_INFO(data) ETK_INFO(applLogName, data) -#define APPL_DEBUG(data) ETK_DEBUG(applLogName, data) -#define APPL_VERBOSE(data) ETK_VERBOSE(applLogName, data) -#define APPL_ASSERT(cond, data) ETK_ASSERT(applLogName, cond, data) -#define APPL_CHECK_INOUT(cond) ETK_CHECK_INOUT(applLogName, cond) -#define APPL_TODO(cond) ETK_TODO(applLogName, cond) +#define APPL_CRITICAL(data) APPL_BASE(1, data) +#define APPL_ERROR(data) APPL_BASE(2, data) +#define APPL_WARNING(data) APPL_BASE(3, data) +#ifdef DEBUG + #define APPL_INFO(data) APPL_BASE(4, data) + #define APPL_DEBUG(data) APPL_BASE(5, data) + #define APPL_VERBOSE(data) APPL_BASE(6, data) + #define APPL_TODO(data) APPL_BASE(4, "TODO : " << data) +#else + #define APPL_INFO(data) do { } while(false) + #define APPL_DEBUG(data) do { } while(false) + #define APPL_VERBOSE(data) do { } while(false) + #define APPL_TODO(data) do { } while(false) +#endif +#define APPL_ASSERT(cond,data) \ + do { \ + if (!(cond)) { \ + APPL_CRITICAL(data); \ + assert(!#cond); \ + } \ + } while (0) #endif