Adds logging level tag to log messages
This commit is contained in:
1 parent
d2d4a21f94
commit
07812d62cd
2 files changed
+31
-23
No files matched your search
+28
-20
@@ -58,69 +58,77 @@ void Logger::log(Level lvl, const char* msg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Logger::Sink::Sink (const Level level, Logger& parent) :
|
Logger::Sink::Sink (const Level level, Logger& parent) :
|
||||||
level(level),
|
level_(level),
|
||||||
parent(parent),
|
parent_(parent),
|
||||||
lineIsPrefixed(false) {}
|
lineIsPrefixed_(false) {}
|
||||||
|
|
||||||
void Logger::Sink::ln ( const string& msg ) {
|
void Logger::Sink::ln ( const string& msg ) {
|
||||||
ln(msg.c_str());
|
ln(msg.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Logger::Sink::ln ( const char* msg ) {
|
void Logger::Sink::ln ( const char* msg ) {
|
||||||
if ( level >= parent.logLevel ) {
|
if ( level_ >= parent_.logLevel ) {
|
||||||
// If line has already been started, abort it and start new one:
|
// If line has already been started, abort it and start new one:
|
||||||
if(lineIsPrefixed) *parent.output << endl;
|
if(lineIsPrefixed_) *parent_.output << endl;
|
||||||
prefixLine(true);
|
prefixLine(true);
|
||||||
*parent.output << msg << endl;
|
*parent_.output << msg << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Logger::Sink::prefixLine(bool resetToFalse) {
|
void Logger::Sink::prefixLine(bool resetToFalse) {
|
||||||
if (!lineIsPrefixed) {
|
if (!lineIsPrefixed_) {
|
||||||
*parent.output << Logger::genTimeStamp() << " ";
|
const char* lvlString;
|
||||||
lineIsPrefixed = resetToFalse ? false : true;
|
switch ( level_ )
|
||||||
|
{
|
||||||
|
case DEBUG: lvlString = "DEBUG"; break;
|
||||||
|
case INFO: lvlString = "INFO"; break;
|
||||||
|
case WARN: lvlString = "WARN"; break;
|
||||||
|
case FATAL: lvlString = "FATAL"; break;
|
||||||
|
}
|
||||||
|
*parent_.output << Logger::genTimeStamp() << " [" << lvlString << "] ";
|
||||||
|
lineIsPrefixed_ = resetToFalse ? false : true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger::Sink& Logger::Sink::operator<<(const string& msg) {
|
Logger::Sink& Logger::Sink::operator<<(const string& msg) {
|
||||||
if ( level >= parent.logLevel ) {
|
if ( level_ >= parent_.logLevel ) {
|
||||||
prefixLine();
|
prefixLine();
|
||||||
*parent.output << msg;
|
*parent_.output << msg;
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger::Sink& Logger::Sink::operator<<(const char* msg) {
|
Logger::Sink& Logger::Sink::operator<<(const char* msg) {
|
||||||
if ( level >= parent.logLevel ) {
|
if ( level_ >= parent_.logLevel ) {
|
||||||
prefixLine();
|
prefixLine();
|
||||||
*parent.output << msg;
|
*parent_.output << msg;
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger::Sink& Logger::Sink::operator<<(const long msg) {
|
Logger::Sink& Logger::Sink::operator<<(const long msg) {
|
||||||
if ( level >= parent.logLevel ) {
|
if ( level_ >= parent_.logLevel ) {
|
||||||
prefixLine();
|
prefixLine();
|
||||||
*parent.output << msg;
|
*parent_.output << msg;
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger::Sink& Logger::Sink::operator<<(const unsigned long msg) {
|
Logger::Sink& Logger::Sink::operator<<(const unsigned long msg) {
|
||||||
if ( level >= parent.logLevel ) {
|
if ( level_ >= parent_.logLevel ) {
|
||||||
prefixLine();
|
prefixLine();
|
||||||
*parent.output << msg;
|
*parent_.output << msg;
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger::Sink& Logger::Sink::operator<<(const char character) {
|
Logger::Sink& Logger::Sink::operator<<(const char character) {
|
||||||
if ( level >= parent.logLevel ) {
|
if ( level_ >= parent_.logLevel ) {
|
||||||
switch(character) {
|
switch(character) {
|
||||||
// COMMIT - End message line
|
// COMMIT - End message line
|
||||||
case 0:
|
case 0:
|
||||||
*parent.output << endl;
|
*parent_.output << endl;
|
||||||
lineIsPrefixed = false;
|
lineIsPrefixed_ = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,9 +23,9 @@ class Logger {
|
|||||||
|
|
||||||
class Sink {
|
class Sink {
|
||||||
private:
|
private:
|
||||||
bool lineIsPrefixed;
|
bool lineIsPrefixed_;
|
||||||
Logger& parent;
|
Logger& parent_;
|
||||||
const Logger::Level level;
|
const Logger::Level level_;
|
||||||
void prefixLine(bool resetToFalse = false);
|
void prefixLine(bool resetToFalse = false);
|
||||||
public:
|
public:
|
||||||
Sink(const Level level, Logger& parent);
|
Sink(const Level level, Logger& parent);
|
||||||
|
|||||||
Reference in new issue
Block a user