diff --git a/include/Logger.hpp b/include/Logger.hpp index 635daa4..1f21daf 100644 --- a/include/Logger.hpp +++ b/include/Logger.hpp @@ -22,17 +22,19 @@ String LogLevelToString(LogLevel level); Color LogLevelToColor(LogLevel level); struct LoggerSettings { + explicit LoggerSettings(bool useColor = false, bool showTimestamp = false, + const String &timeFormat = String("%Y-%m-%d %D %H:%M:%S")); + bool useColor = false; bool showTimestamp = true; String timeFormat = "%Y-%m-%d %D %H:%M:%S"; }; struct FileSettings { - enum FileOutputType { - None = 0, - SingleFile, - RotatingFile - }; + enum FileOutputType { None = 0, SingleFile, RotatingFile }; + + explicit FileSettings(FileOutputType fileOutputType = SingleFile, + const String &outputFilepath = "Log.log", size_t maxRotatingFileSize = 0); FileOutputType fileOutputType = SingleFile; String outputFilepath = "Log.log"; diff --git a/src/Logger.cpp b/src/Logger.cpp index d05490e..9ccbba5 100644 --- a/src/Logger.cpp +++ b/src/Logger.cpp @@ -5,6 +5,7 @@ #include "String.hpp" #include "Time.hpp" #include +#include #include #include @@ -52,6 +53,20 @@ Color LogLevelToColor(const LogLevel level) { } } +LoggerSettings::LoggerSettings( + const bool useColor, const bool showTimestamp, const String &timeFormat) + : useColor(useColor) + , showTimestamp(showTimestamp) + , timeFormat(timeFormat) {} + +FileSettings::FileSettings( + const FileOutputType fileOutputType, + const String &outputFilepath, + const size_t maxRotatingFileSize) + : fileOutputType(fileOutputType) + , outputFilepath(outputFilepath) + , maxRotatingFileSize(maxRotatingFileSize) {} + size_t File::GetSize() const { return std::filesystem::file_size(filePath.ToStdString()); }