utility: added log levels for Loggers
This change allows setting log levels on loggers. The apps ConsoleLogger was switched to only logging warnings and errors the FileLogger still saves all types of logs.
This commit is contained in:
@@ -10,11 +10,11 @@ public:
|
||||
ConsoleLogger();
|
||||
~ConsoleLogger();
|
||||
|
||||
private:
|
||||
virtual void logInfo(const LogMessage& message);
|
||||
virtual void logWarning(const LogMessage& message);
|
||||
virtual void logError(const LogMessage& message);
|
||||
|
||||
private:
|
||||
void logMessage(const std::string& type, const LogMessage& message);
|
||||
};
|
||||
|
||||
|
||||
@@ -12,11 +12,11 @@ public:
|
||||
FileLogger();
|
||||
virtual ~FileLogger();
|
||||
|
||||
private:
|
||||
virtual void logInfo(const LogMessage& message);
|
||||
virtual void logWarning(const LogMessage& message);
|
||||
virtual void logError(const LogMessage& message);
|
||||
|
||||
private:
|
||||
static const std::string s_filePath;
|
||||
|
||||
void setupFileName();
|
||||
|
||||
@@ -65,7 +65,7 @@ void LogManagerImplementation::logInfo(
|
||||
std::lock_guard<std::mutex> lockGuardLogger(m_loggerMutex);
|
||||
for (unsigned int i = 0; i < m_loggers.size(); i++)
|
||||
{
|
||||
m_loggers[i]->logInfo(LogMessage(message, file, function, line, getTime()));
|
||||
m_loggers[i]->onInfo(LogMessage(message, file, function, line, getTime()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ void LogManagerImplementation::logWarning(
|
||||
std::lock_guard<std::mutex> lockGuardLogger(m_loggerMutex);
|
||||
for (unsigned int i = 0; i < m_loggers.size(); i++)
|
||||
{
|
||||
m_loggers[i]->logWarning(LogMessage(message, file, function, line, getTime()));
|
||||
m_loggers[i]->onWarning(LogMessage(message, file, function, line, getTime()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ void LogManagerImplementation::logError(
|
||||
std::lock_guard<std::mutex> lockGuardLogger(m_loggerMutex);
|
||||
for (unsigned int i = 0; i < m_loggers.size(); i++)
|
||||
{
|
||||
m_loggers[i]->logError(LogMessage(message, file, function, line, getTime()));
|
||||
m_loggers[i]->onError(LogMessage(message, file, function, line, getTime()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
Logger::Logger(const std::string& type)
|
||||
: m_type(type)
|
||||
, m_levelMask(LOG_ALL)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -13,3 +14,42 @@ std::string Logger::getType() const
|
||||
{
|
||||
return m_type;
|
||||
}
|
||||
|
||||
Logger::LogLevelMask Logger::getLogLevel() const
|
||||
{
|
||||
return m_levelMask;
|
||||
}
|
||||
|
||||
void Logger::setLogLevel(LogLevelMask mask)
|
||||
{
|
||||
m_levelMask = mask;
|
||||
}
|
||||
|
||||
bool Logger::isLogLevel(LogLevelMask mask)
|
||||
{
|
||||
return (m_levelMask & mask) > 0;
|
||||
}
|
||||
|
||||
void Logger::onInfo(const LogMessage& message)
|
||||
{
|
||||
if (isLogLevel(LOG_INFOS))
|
||||
{
|
||||
logInfo(message);
|
||||
}
|
||||
}
|
||||
|
||||
void Logger::onWarning(const LogMessage& message)
|
||||
{
|
||||
if (isLogLevel(LOG_WARNINGS))
|
||||
{
|
||||
logWarning(message);
|
||||
}
|
||||
}
|
||||
|
||||
void Logger::onError(const LogMessage& message)
|
||||
{
|
||||
if (isLogLevel(LOG_ERRORS))
|
||||
{
|
||||
logError(message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,17 +9,35 @@
|
||||
class Logger
|
||||
{
|
||||
public:
|
||||
typedef int LogLevelMask;
|
||||
enum LogLevel : int
|
||||
{
|
||||
LOG_INFOS = 0x1,
|
||||
LOG_WARNINGS = 0x2,
|
||||
LOG_ERRORS = 0x4,
|
||||
LOG_ALL = 0x7
|
||||
};
|
||||
|
||||
Logger(const std::string& type);
|
||||
virtual ~Logger();
|
||||
|
||||
std::string getType() const;
|
||||
|
||||
LogLevelMask getLogLevel() const;
|
||||
void setLogLevel(LogLevelMask mask);
|
||||
bool isLogLevel(LogLevelMask mask);
|
||||
|
||||
void onInfo(const LogMessage& message);
|
||||
void onWarning(const LogMessage& message);
|
||||
void onError(const LogMessage& message);
|
||||
|
||||
private:
|
||||
virtual void logInfo(const LogMessage& message) = 0;
|
||||
virtual void logWarning(const LogMessage& message) = 0;
|
||||
virtual void logError(const LogMessage& message) = 0;
|
||||
|
||||
private:
|
||||
const std::string m_type;
|
||||
LogLevelMask m_levelMask;
|
||||
};
|
||||
|
||||
#endif // LOGGER_H
|
||||
|
||||
@@ -14,11 +14,11 @@ public:
|
||||
|
||||
void logString(std::string str);
|
||||
|
||||
private:
|
||||
virtual void logInfo(const LogMessage& message);
|
||||
virtual void logWarning(const LogMessage& message);
|
||||
virtual void logError(const LogMessage& message);
|
||||
|
||||
private:
|
||||
void logMessage(const std::string& type, const LogMessage& message);
|
||||
|
||||
std::string m_filePath;
|
||||
|
||||
Reference in New Issue
Block a user