From 1ae0387a255c7ec891179e3880579368b6cc588d Mon Sep 17 00:00:00 2001 From: Antony Woods Date: Tue, 20 May 2014 23:30:51 +0100 Subject: Added log level support --- logging.h | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'logging.h') diff --git a/logging.h b/logging.h index 5a23303..dc610f0 100644 --- a/logging.h +++ b/logging.h @@ -31,12 +31,16 @@ class logger { }; // + static Level currentLevel; + logger(string prefix, logger::Level level) : m_prefix(prefix), m_level(level) { } ~logger() { #ifdef CROW_ENABLE_LOGGING - cerr << "(" << timeStamp() << ") [" << m_prefix << "] " << m_stringStream.str() << endl; + if(m_level <= currentLevel) { + cerr << "(" << timeStamp() << ") [" << m_prefix << "] " << m_stringStream.str() << endl; + } #endif } @@ -45,12 +49,19 @@ class logger { logger& operator<<(T const &value) { #ifdef CROW_ENABLE_LOGGING - m_stringStream << value; + if(m_level <= currentLevel) { + m_stringStream << value; + } #endif return *this; } - private: + // + static void setLogLevel(logger::Level level) { + currentLevel = level; + } + + private: // ostringstream m_stringStream; @@ -58,6 +69,9 @@ class logger { Level m_level; }; +// +logger::Level logger::currentLevel = (Level)CROW_LOG_LEVEL; + #define CROW_LOG_CRITICAL logger("CRITICAL", logger::Level::CRITICAL) #define CROW_LOG_ERROR logger("ERROR ", logger::Level::ERROR) #define CROW_LOG_WARNING logger("WARNING ", logger::Level::WARNING) -- cgit v1.2.3-54-g00ecf