From 7fa785a8f4e1aff57616d342cfc3e9cd76bce712 Mon Sep 17 00:00:00 2001 From: winckler Date: Mon, 27 Apr 2015 13:22:16 +0200 Subject: [PATCH] add static set log level function and minimum log level variable to FairMQlogger in order to filter output printing. --- fairmq/FairMQLogger.cxx | 40 +++++++++++++++++++++++++--------------- fairmq/FairMQLogger.h | 20 ++++++++++++++++---- 2 files changed, 41 insertions(+), 19 deletions(-) diff --git a/fairmq/FairMQLogger.cxx b/fairmq/FairMQLogger.cxx index 175166e9..aad0becd 100644 --- a/fairmq/FairMQLogger.cxx +++ b/fairmq/FairMQLogger.cxx @@ -12,42 +12,52 @@ * @author D. Klein, A. Rybalchenko */ -#include -#include - #include "FairMQLogger.h" -using namespace std; + +int FairMQLogger::fMinLogLevel = FairMQLogger::DEBUG; FairMQLogger::FairMQLogger() - : os() + : os(), fLogLevel(DEBUG) { } FairMQLogger::~FairMQLogger() { - cout << os.str() << endl; + if(fLogLevel>=FairMQLogger::fMinLogLevel && fLogLevel #include #include +#include +#include class FairMQLogger { - public: - enum + public: + enum Level { DEBUG, INFO, - ERROR, WARN, - STATE + ERROR, + STATE, + NOLOG }; + FairMQLogger(); virtual ~FairMQLogger(); std::ostringstream& Log(int type); + static void SetLogLevel(int loglevel) + { + FairMQLogger::fMinLogLevel = loglevel; + } + private: std::ostringstream os; + int fLogLevel; + static int fMinLogLevel; }; typedef unsigned long long timestamp_t; @@ -46,5 +57,6 @@ timestamp_t get_timestamp(); #define LOG(type) FairMQLogger().Log(FairMQLogger::type) #define MQLOG(type) FairMQLogger().Log(FairMQLogger::type) +#define SET_LOG_LEVEL(loglevel) FairMQLogger::SetLogLevel(FairMQLogger::loglevel) #endif /* FAIRMQLOGGER_H_ */