src: Logger Utility

Added logger utility and outsourced file name creation for file loggers to it
This commit is contained in:
wrongway88
2017-03-29 22:56:37 +02:00
parent abf7c723a2
commit 25f3c4666a
6 changed files with 56 additions and 21 deletions
+2
View File
@@ -22,6 +22,7 @@
#include "utility/commandline/CommandLineParser.h"
#include "utility/logging/ConsoleLogger.h"
#include "utility/logging/FileLogger.h"
#include "utility/logging/LoggerUtility.h"
#include "utility/logging/logging.h"
#include "utility/logging/LogManager.h"
#include "utility/messaging/type/MessageEnteredLicense.h"
@@ -42,6 +43,7 @@ void setupLogging()
logManager->addLogger(consoleLogger);
std::shared_ptr<FileLogger> fileLogger = std::make_shared<FileLogger>();
fileLogger->setFileName(LoggerUtility::generateDatedFileName("log"));
fileLogger->setLogDirectory(UserPaths::getLogPath());
fileLogger->setLogLevel(Logger::LOG_ALL);
logManager->addLogger(fileLogger);
+2
View File
@@ -276,6 +276,8 @@ add_files(
utility/logging/FileLogger.h
utility/logging/Logger.cpp
utility/logging/Logger.h
utility/logging/LoggerUtility.cpp
utility/logging/LoggerUtility.h
utility/logging/logging.h
utility/logging/LogManager.cpp
utility/logging/LogManager.h
+6 -19
View File
@@ -8,7 +8,7 @@
FileLogger::FileLogger()
: Logger("FileLogger")
, m_logFileName(getFileName())
, m_logFileName()
, m_logDirectory("user/log/")
, m_maxLogLineCount(0)
, m_maxLogFileCount(0)
@@ -28,6 +28,11 @@ void FileLogger::setLogDirectory(const std::string& filePath)
FileSystem::createDirectory(m_logDirectory);
}
void FileLogger::setFileName(const std::string& fileName)
{
m_logFileName = fileName;
}
void FileLogger::logInfo(const LogMessage& message)
{
logMessage("INFO", message);
@@ -43,24 +48,6 @@ void FileLogger::logError(const LogMessage& message)
logMessage("ERROR", message);
}
std::string FileLogger::getFileName()
{
time_t time;
std::time(&time);
tm t = *std::localtime(&time);
std::stringstream filename;
filename << "log_";
filename << t.tm_year + 1900 << "-";
filename << (t.tm_mon < 9 ? "0" : "") << t.tm_mon + 1 << "-";
filename << (t.tm_mday < 10 ? "0" : "") << t.tm_mday << "_";
filename << (t.tm_hour < 10 ? "0" : "") << t.tm_hour << "-";
filename << (t.tm_min < 10 ? "0" : "") << t.tm_min << "-";
filename << (t.tm_sec < 10 ? "0" : "") << t.tm_sec;
return filename.str();
}
void FileLogger::setMaxLogLineCount(unsigned int lineCount)
{
m_maxLogLineCount = lineCount;
+2 -2
View File
@@ -13,6 +13,7 @@ public:
virtual ~FileLogger();
void setLogDirectory(const std::string& filePath);
void setFileName(const std::string& fileName);
void setMaxLogLineCount(unsigned int logCount);
// setting the max log file count to 0 will disable ringlogging
@@ -23,11 +24,10 @@ private:
virtual void logWarning(const LogMessage& message);
virtual void logError(const LogMessage& message);
static std::string getFileName();
void logMessage(const std::string& type, const LogMessage& message);
void updateLogFileName();
const std::string m_logFileName;
std::string m_logFileName;
std::string m_logDirectory;
unsigned int m_maxLogLineCount;
unsigned int m_maxLogFileCount;
+32
View File
@@ -0,0 +1,32 @@
#include "LoggerUtility.h"
#include <sstream>
#include <ctime>
std::string LoggerUtility::generateDatedFileName(const std::string& prefix, const std::string& suffix)
{
time_t time;
std::time(&time);
tm t = *std::localtime(&time);
std::stringstream filename;
if (prefix.length() > 0)
{
filename << prefix;
filename << "_";
}
filename << t.tm_year + 1900 << "-";
filename << (t.tm_mon < 9 ? "0" : "") << t.tm_mon + 1 << "-";
filename << (t.tm_mday < 10 ? "0" : "") << t.tm_mday << "_";
filename << (t.tm_hour < 10 ? "0" : "") << t.tm_hour << "-";
filename << (t.tm_min < 10 ? "0" : "") << t.tm_min << "-";
filename << (t.tm_sec < 10 ? "0" : "") << t.tm_sec;
if (prefix.length() > 0)
{
filename << "_";
filename << suffix;
}
return filename.str();
}
+12
View File
@@ -0,0 +1,12 @@
#ifndef LOGGER_UTILITY_H
#define LOGGER_UTILITY_H
#include <string>
class LoggerUtility
{
public:
static std::string generateDatedFileName(const std::string& prefix = "", const std::string& suffix = "");
};
#endif // LOGGER_UTILITY_H