add static set log level function and minimum log level variable to FairMQlogger in order to filter output printing.

This commit is contained in:
winckler 2015-04-27 13:22:16 +02:00 committed by Florian Uhlig
parent 445ef356d1
commit 7fa785a8f4
2 changed files with 41 additions and 19 deletions

View File

@ -12,42 +12,52 @@
* @author D. Klein, A. Rybalchenko
*/
#include <string>
#include <stdio.h>
#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<FairMQLogger::NOLOG)
std::cout << os.str() << std::endl;
}
ostringstream& FairMQLogger::Log(int type)
std::ostringstream& FairMQLogger::Log(int type)
{
string type_str;
std::string type_str;
fLogLevel=type;
switch (type)
{
case DEBUG:
case DEBUG :
type_str = "\033[01;34mDEBUG\033[0m";
break;
case INFO:
case INFO :
type_str = "\033[01;32mINFO\033[0m";
break;
case ERROR:
type_str = "\033[01;31mERROR\033[0m";
break;
case WARN:
case WARN :
type_str = "\033[01;33mWARN\033[0m";
break;
case STATE:
case ERROR :
type_str = "\033[01;31mERROR\033[0m";
break;
case STATE :
type_str = "\033[01;35mSTATE\033[0m";
break;
case NOLOG :
type_str = "\033[01;31mNOLOG\033[0m";
break;
default:
break;
}

View File

@ -20,24 +20,35 @@
#include <iostream>
#include <iomanip>
#include <ctime>
#include <string>
#include <stdio.h>
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_ */