1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
#include "StringLogDevice.h"
#include "LogWriter.h"
namespace applog {
StringLogDevice::StringLogDevice() {
LogWriter::Instance().attach(this);
}
StringLogDevice::~StringLogDevice() {
LogWriter::Instance().detach(this);
}
void StringLogDevice::writeLog(const std::string& outputStr, LogLevel level)
{
switch (level)
{
case LogLevel::Error:
_errorStream << outputStr;
break;
case LogLevel::Warning:
_warningStream << outputStr;
break;
default:
_logStream << outputStr;
};
}
std::string StringLogDevice::getString(LogLevel level)
{
switch (level)
{
case LogLevel::Error:
return _errorStream.str();
case LogLevel::Warning:
return _warningStream.str();
case LogLevel::Standard:
return _logStream.str();
default:
return "";
};
}
void StringLogDevice::destroy()
{
InstancePtr().reset();
}
StringLogDevice::Ptr& StringLogDevice::InstancePtr()
{
static Ptr _instancePtr;
return _instancePtr;
}
} // namespace applog
|