mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Trivial logging subsystem.
This commit is contained in:
38
src/Log.cpp
Normal file
38
src/Log.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
|
||||
#include "Log.h"
|
||||
|
||||
#include <boost/date_time/posix_time/posix_time.hpp>
|
||||
|
||||
boost::recursive_mutex Log::sLock;
|
||||
|
||||
#ifdef DEBUG
|
||||
LogSeverity Log::sMinSeverity = lsTRACE;
|
||||
#else
|
||||
LogSeverity Log::sMinSeverity = lsINFO;
|
||||
#endif
|
||||
|
||||
Log::~Log()
|
||||
{
|
||||
std::string logMsg = boost::posix_time::to_simple_string(boost::posix_time::second_clock::universal_time());
|
||||
switch (mSeverity)
|
||||
{
|
||||
case lsTRACE: logMsg += " TRAC "; break;
|
||||
case lsDEBUG: logMsg += " DEBG "; break;
|
||||
case lsINFO: logMsg += " INFO "; break;
|
||||
case lsWARNING: logMsg += " WARN "; break;
|
||||
case lsERROR: logMsg += " EROR "; break;
|
||||
case lsFATAL: logMsg += " FATL "; break;
|
||||
}
|
||||
logMsg += oss.str();
|
||||
boost::recursive_mutex::scoped_lock sl(sLock);
|
||||
if (mSeverity >= sMinSeverity)
|
||||
{
|
||||
std::cerr << logMsg << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void Log::setMinSeverity(LogSeverity s)
|
||||
{
|
||||
boost::recursive_mutex::scoped_lock sl(sLock);
|
||||
sMinSeverity = s;
|
||||
}
|
||||
45
src/Log.h
Normal file
45
src/Log.h
Normal file
@@ -0,0 +1,45 @@
|
||||
#ifndef __LOG__
|
||||
#define __LOG__
|
||||
|
||||
#include <sstream>
|
||||
|
||||
#include <boost/thread/recursive_mutex.hpp>
|
||||
|
||||
enum LogSeverity
|
||||
{
|
||||
lsTRACE = 0,
|
||||
lsDEBUG = 1,
|
||||
lsINFO = 2,
|
||||
lsWARNING = 3,
|
||||
lsERROR = 4,
|
||||
lsFATAL = 5
|
||||
};
|
||||
|
||||
class Log
|
||||
{
|
||||
private:
|
||||
Log(const Log&); // no implementation
|
||||
Log& operator=(const Log&); // no implementation
|
||||
|
||||
protected:
|
||||
static boost::recursive_mutex sLock;
|
||||
static LogSeverity sMinSeverity;
|
||||
|
||||
mutable std::ostringstream oss;
|
||||
LogSeverity mSeverity;
|
||||
|
||||
public:
|
||||
Log(LogSeverity s) : mSeverity(s)
|
||||
{ ; }
|
||||
|
||||
~Log();
|
||||
|
||||
template<typename T> std::ostream& operator<<(const T& t) const
|
||||
{
|
||||
return oss << t;
|
||||
}
|
||||
|
||||
static void setMinSeverity(LogSeverity);
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user