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