Browse Source

loglevel can be set now and all logging macros support streaming

Former-commit-id: c8c32b43e6
main
sjunges 9 years ago
parent
commit
cf986311ad
  1. 46
      src/utility/macros.h

46
src/utility/macros.h

@ -18,14 +18,20 @@ extern int storm_runtime_loglevel;
#define STORM_LOG_DEBUG(message) \ #define STORM_LOG_DEBUG(message) \
do { \ do { \
if(storm_runtime_loglevel <= STORM_LOGLEVEL_DEBUG) { \
std::cout << "LOG DBG: " << message << std::endl; \
if(storm_runtime_loglevel >= STORM_LOGLEVEL_DEBUG) { \
std::stringstream __ss; \
__ss << message; \
std::cout << "LOG DBG: " << __ss.str() << std::endl; \
} \ } \
} while (false) } while (false)
#define STORM_LOG_TRACE(message) \ #define STORM_LOG_TRACE(message) \
do { \ do { \
if(storm_runtime_loglevel >= STORM_LOGLEVEL_TRACE) { \
std::stringstream __ss; \
__ss << message; \
std::cout << "LOG TRC: " << message << std::endl; \ std::cout << "LOG TRC: " << message << std::endl; \
} \
} while(false) } while(false)
@ -34,10 +40,10 @@ do { \
#define STORM_LOG_ASSERT(cond, message) \ #define STORM_LOG_ASSERT(cond, message) \
do { \ do { \
if (!(cond)) { \ if (!(cond)) { \
std::cout << "LOG ERR: " << message << std::endl; \
std::cout << "ASSERT FAILED: " << message << std::endl; \
assert(cond); \ assert(cond); \
} \ } \
} while (false) \
} while (false)
#else #else
#define STORM_LOG_ASSERT(cond, message) #define STORM_LOG_ASSERT(cond, message)
@ -49,61 +55,73 @@ do { \
std::cout << "LOG ERR: " << message << std::endl; \ std::cout << "LOG ERR: " << message << std::endl; \
throw exception() << message; \ throw exception() << message; \
} \ } \
} while (false) \
} while (false)
// Define STORM_LOG_WARN, STORM_LOG_ERROR and STORM_LOG_INFO to log the given message with the corresponding log levels. // Define STORM_LOG_WARN, STORM_LOG_ERROR and STORM_LOG_INFO to log the given message with the corresponding log levels.
#define STORM_LOG_WARN(message) \ #define STORM_LOG_WARN(message) \
do { \ do { \
if(storm_runtime_loglevel >= STORM_LOGLEVEL_WARN) { \
std::stringstream __ss; \
__ss << message; \
std::cout << "LOG WRN: " << message << std::endl; \ std::cout << "LOG WRN: " << message << std::endl; \
} while (false) \
} \
} while (false)
#define STORM_LOG_WARN_COND(cond, message) \ #define STORM_LOG_WARN_COND(cond, message) \
do { \ do { \
if (!(cond)) { \ if (!(cond)) { \
std::cout << "LOG WRN: " << message << std::endl; \
STORM_LOG_WARN(message); \
} \ } \
} while (false) \
} while (false)
#define STORM_LOG_INFO(message) \ #define STORM_LOG_INFO(message) \
do { \ do { \
if(storm_runtime_loglevel >= STORM_LOGLEVEL_INFO) { \
std::stringstream __ss; \
__ss << message; \
std::cout << "LOG INF: " << message << std::endl; \ std::cout << "LOG INF: " << message << std::endl; \
} while (false) \
} \
} while (false)
#define STORM_LOG_INFO_COND(cond, message) \ #define STORM_LOG_INFO_COND(cond, message) \
do { \ do { \
if (!(cond)) { \ if (!(cond)) { \
std::cout << "LOG INF: " << message << std::endl; \
STORM_LOG_INFO(message); \
} \ } \
} while (false) \
} while (false)
#define STORM_LOG_ERROR(message) \ #define STORM_LOG_ERROR(message) \
do { \ do { \
if(storm_runtime_loglevel >= STORM_LOGLEVEL_ERROR) { \
std::stringstream __ss; \ std::stringstream __ss; \
__ss << message; \ __ss << message; \
std::cout << "LOG ERR: " << __ss.str() << std::endl; \
std::cout << "LOG ERR: " << message << std::endl; \
} \
} while (false) \ } while (false) \
#define STORM_LOG_ERROR_COND(cond, message) \ #define STORM_LOG_ERROR_COND(cond, message) \
do { \ do { \
if (!(cond)) { \ if (!(cond)) { \
STORM_LOG_ERROR(message) \
STORM_LOG_ERROR(message); \
} \ } \
} while (false) \ } while (false) \
#define STORM_GLOBAL_LOGLEVEL_INFO() \ #define STORM_GLOBAL_LOGLEVEL_INFO() \
do { \ do { \
storm_runtime_loglevel = STORM_LOGLEVEL_INFO; \
} while (false) } while (false)
#define STORM_GLOBAL_LOGLEVEL_DEBUG() \ #define STORM_GLOBAL_LOGLEVEL_DEBUG() \
do { \ do { \
storm_runtime_loglevel = STORM_LOGLEVEL_DEBUG; \
} while(false) } while(false)
#define STORM_GLOBAL_LOGLEVEL_TRACE() \ #define STORM_GLOBAL_LOGLEVEL_TRACE() \
do { \ do { \
storm_runtime_loglevel = STORM_LOGLEVEL_TRACE; \
} while(false) } while(false)
#else #else
// Include the parts necessary for Log4cplus. // Include the parts necessary for Log4cplus.
#include "log4cplus/logger.h" #include "log4cplus/logger.h"

Loading…
Cancel
Save