From 9f97fdd31a3b9a06b6acfa1101d105e43687e824 Mon Sep 17 00:00:00 2001 From: Treeston Date: Fri, 28 Aug 2020 00:11:16 +0200 Subject: Core/Common: Tokenizer -> Trinity::Tokenize (PR: #25327) (cherry picked from commit 534a2388b7c662c8796aabb1ec8cb424879799b6) --- src/common/Logging/AppenderFile.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) (limited to 'src/common/Logging/AppenderFile.cpp') diff --git a/src/common/Logging/AppenderFile.cpp b/src/common/Logging/AppenderFile.cpp index 3cfd6b950a6..bb38cade4e4 100644 --- a/src/common/Logging/AppenderFile.cpp +++ b/src/common/Logging/AppenderFile.cpp @@ -18,23 +18,25 @@ #include "AppenderFile.h" #include "Log.h" #include "LogMessage.h" +#include "StringConvert.h" +#include "Util.h" #include -AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, AppenderFlags flags, std::vector extraArgs) : +AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, AppenderFlags flags, std::vector const& args) : Appender(id, name, level, flags), logfile(nullptr), _logDir(sLog->GetLogsDir()), _maxFileSize(0), _fileSize(0) { - if (extraArgs.empty()) - throw InvalidAppenderArgsException(Trinity::StringFormat("Log::CreateAppenderFromConfig: Missing file name for appender %s\n", name.c_str())); + if (args.size() < 4) + throw InvalidAppenderArgsException(Trinity::StringFormat("Log::CreateAppenderFromConfig: Missing file name for appender %s", name.c_str())); - _fileName = extraArgs[0]; + _fileName.assign(args[3]); - char const* mode = "a"; - if (extraArgs.size() > 1) - mode = extraArgs[1]; + std::string mode = "a"; + if (4 < args.size()) + mode.assign(args[4]); if (flags & APPENDER_FLAGS_USE_TIMESTAMP) { @@ -45,14 +47,19 @@ AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, Ap _fileName += sLog->GetLogsTimestamp(); } - if (extraArgs.size() > 2) - _maxFileSize = atoi(extraArgs[2]); + if (5 < args.size()) + { + if (Optional size = Trinity::StringTo(args[5])) + _maxFileSize = *size; + else + throw InvalidAppenderArgsException(Trinity::StringFormat("Log::CreateAppenderFromConfig: Invalid size '%s' for appender %s", std::string(args[5]).c_str(), name.c_str())); + } _dynamicName = std::string::npos != _fileName.find("%s"); _backup = (flags & APPENDER_FLAGS_MAKE_FILE_BACKUP) != 0; if (!_dynamicName) - logfile = OpenFile(_fileName, mode, !strcmp(mode, "w") && _backup); + logfile = OpenFile(_fileName, mode, (mode == "w") && _backup); } AppenderFile::~AppenderFile() -- cgit v1.2.3