refactor(Core/Misc): add braces and impove codestyle (#6402)

This commit is contained in:
Kargatum
2021-06-25 00:50:18 +07:00
committed by GitHub
parent 33c271cc7c
commit 3c24b511f2
72 changed files with 1486 additions and 401 deletions

View File

@@ -9,7 +9,7 @@
#include <sstream>
Appender::Appender(uint8 _id, std::string const& _name, LogLevel _level /* = LOG_LEVEL_DISABLED */, AppenderFlags _flags /* = APPENDER_FLAGS_NONE */):
id(_id), name(_name), level(_level), flags(_flags) { }
id(_id), name(_name), level(_level), flags(_flags) { }
Appender::~Appender() { }
@@ -41,18 +41,26 @@ void Appender::setLogLevel(LogLevel _level)
void Appender::write(LogMessage* message)
{
if (!level || level < message->level)
{
return;
}
std::ostringstream ss;
if (flags & APPENDER_FLAGS_PREFIX_TIMESTAMP)
{
ss << message->getTimeStr() << ' ';
}
if (flags & APPENDER_FLAGS_PREFIX_LOGLEVEL)
{
ss << Acore::StringFormat("%-5s ", Appender::getLogLevelString(message->level));
}
if (flags & APPENDER_FLAGS_PREFIX_LOGFILTERTYPE)
{
ss << '[' << message->type << "] ";
}
message->prefix = ss.str();
_write(message);

View File

@@ -20,10 +20,14 @@ AppenderConsole::AppenderConsole(uint8 id, std::string const& name, LogLevel lev
: Appender(id, name, level, flags), _colored(false)
{
for (uint8 i = 0; i < NUM_ENABLED_LOG_LEVELS; ++i)
{
_colors[i] = ColorTypes(NUM_COLOR_TYPES);
}
if (3 < args.size())
{
InitColors(name, args[3]);
}
}
void AppenderConsole::InitColors(std::string const& name, std::string_view str)
@@ -44,7 +48,9 @@ void AppenderConsole::InitColors(std::string const& name, std::string_view str)
for (uint8 i = 0; i < NUM_ENABLED_LOG_LEVELS; ++i)
{
if (Optional<uint8> color = Acore::StringTo<uint8>(colorStrs[i]); color && EnumUtils::IsValid<ColorTypes>(*color))
{
_colors[i] = static_cast<ColorTypes>(*color);
}
else
{
throw InvalidAppenderArgsException(Acore::StringFormat("Log::CreateAppenderFromConfig: Invalid color '%s' for log level %s on console appender %s",
@@ -138,8 +144,8 @@ void AppenderConsole::SetColor(bool stdout_stream, ColorTypes color)
FG_WHITE // LWHITE
};
fprintf((stdout_stream? stdout : stderr), "\x1b[%d%sm", UnixColorFG[color], (color >= YELLOW && color < NUM_COLOR_TYPES ? ";1" : ""));
#endif
fprintf((stdout_stream ? stdout : stderr), "\x1b[%d%sm", UnixColorFG[color], (color >= YELLOW && color < NUM_COLOR_TYPES ? ";1" : ""));
#endif
}
void AppenderConsole::ResetColor(bool stdout_stream)
@@ -163,23 +169,23 @@ void AppenderConsole::_write(LogMessage const* message)
switch (message->level)
{
case LOG_LEVEL_TRACE:
index = 5;
break;
index = 5;
break;
case LOG_LEVEL_DEBUG:
index = 4;
break;
index = 4;
break;
case LOG_LEVEL_INFO:
index = 3;
break;
index = 3;
break;
case LOG_LEVEL_WARN:
index = 2;
break;
index = 2;
break;
case LOG_LEVEL_FATAL:
index = 0;
break;
index = 0;
break;
default:
index = 1;
break;
index = 1;
break;
}
SetColor(stdout_stream, _colors[index]);
@@ -187,5 +193,7 @@ void AppenderConsole::_write(LogMessage const* message)
ResetColor(stdout_stream);
}
else
{
utf8printf(stdout_stream ? stdout : stderr, "%s%s\n", message->prefix.c_str(), message->text.c_str());
}
}

View File

@@ -18,36 +18,50 @@ AppenderFile::AppenderFile(uint8 id, std::string const& name, LogLevel level, Ap
_fileSize(0)
{
if (args.size() < 4)
{
throw InvalidAppenderArgsException(Acore::StringFormat("Log::CreateAppenderFromConfig: Missing file name for appender %s", name.c_str()));
}
_fileName.assign(args[3]);
std::string mode = "a";
if (4 < args.size())
{
mode.assign(args[4]);
}
if (flags & APPENDER_FLAGS_USE_TIMESTAMP)
{
size_t dot_pos = _fileName.find_last_of('.');
if (dot_pos != std::string::npos)
{
_fileName.insert(dot_pos, sLog->GetLogsTimestamp());
}
else
{
_fileName += sLog->GetLogsTimestamp();
}
}
if (5 < args.size())
{
if (Optional<uint32> size = Acore::StringTo<uint32>(args[5]))
{
_maxFileSize = *size;
}
else
{
throw InvalidAppenderArgsException(Acore::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, (mode == "w") && _backup);
}
}
AppenderFile::~AppenderFile()
@@ -67,7 +81,9 @@ void AppenderFile::_write(LogMessage const* message)
// always use "a" with dynamic name otherwise it could delete the log we wrote in last _write() call
FILE* file = OpenFile(namebuf, "a", _backup || exceedMaxSize);
if (!file)
{
return;
}
fprintf(file, "%s%s\n", message->prefix.c_str(), message->text.c_str());
fflush(file);
@@ -77,10 +93,14 @@ void AppenderFile::_write(LogMessage const* message)
return;
}
else if (exceedMaxSize)
{
logfile = OpenFile(_fileName, "w", true);
}
if (!logfile)
{
return;
}
fprintf(logfile, "%s%s\n", message->prefix.c_str(), message->text.c_str());
fflush(logfile);

View File

@@ -39,7 +39,9 @@ Appender* Log::GetAppenderByName(std::string_view name)
{
auto it = appenders.begin();
while (it != appenders.end() && it->second && it->second->getName() != name)
{
++it;
}
return it == appenders.end() ? nullptr : it->second.get();
}
@@ -47,7 +49,9 @@ Appender* Log::GetAppenderByName(std::string_view name)
void Log::CreateAppenderFromConfig(std::string const& appenderName)
{
if (appenderName.empty())
{
return;
}
// Format = type, level, flags, optional1, optional2
// if type = File. optional1 = file and option2 = mode
@@ -85,7 +89,9 @@ void Log::CreateAppenderFromConfig(std::string const& appenderName)
if (size > 2)
{
if (Optional<uint8> flagsVal = Acore::StringTo<uint8>(tokens[2]))
{
flags = AppenderFlags(*flagsVal);
}
else
{
fprintf(stderr, "Log::CreateAppenderFromConfig: Unknown flags '%s' for appender %s\n", std::string(tokens[2]).c_str(), name.c_str());
@@ -107,7 +113,9 @@ void Log::CreateAppenderFromConfig(std::string const& appenderName)
void Log::CreateLoggerFromConfig(std::string const& appenderName)
{
if (appenderName.empty())
{
return;
}
LogLevel level = LOG_LEVEL_DISABLED;
@@ -143,7 +151,9 @@ void Log::CreateLoggerFromConfig(std::string const& appenderName)
}
if (level > highestLogLevel)
{
highestLogLevel = level;
}
logger = std::make_unique<Logger>(name, level);
//fprintf(stdout, "Log::CreateLoggerFromConfig: Created Logger %s, Level %u\n", name.c_str(), level);
@@ -156,7 +166,9 @@ void Log::CreateLoggerFromConfig(std::string const& appenderName)
//fprintf(stdout, "Log::CreateLoggerFromConfig: Added Appender %s to Logger %s\n", appender->getName().c_str(), name.c_str());
}
else
{
fprintf(stderr, "Error while configuring Appender %s in Logger %s. Appender does not exist\n", std::string(appenderName).c_str(), name.c_str());
}
}
}
@@ -164,14 +176,18 @@ void Log::ReadAppendersFromConfig()
{
std::vector<std::string> keys = sConfigMgr->GetKeysByString("Appender.");
for (std::string const& appenderName : keys)
{
CreateAppenderFromConfig(appenderName);
}
}
void Log::ReadLoggersFromConfig()
{
std::vector<std::string> keys = sConfigMgr->GetKeysByString("Logger.");
for (std::string const& loggerName : keys)
{
CreateLoggerFromConfig(loggerName);
}
// Bad config configuration, creating default config
if (loggers.find(LOGGER_ROOT) == loggers.end())
@@ -222,15 +238,21 @@ Logger const* Log::GetLoggerByType(std::string const& type) const
{
auto it = loggers.find(type);
if (it != loggers.end())
{
return it->second.get();
}
if (type == LOGGER_ROOT)
{
return nullptr;
}
std::string parentLogger = LOGGER_ROOT;
size_t found = type.find_last_of('.');
if (found != std::string::npos)
{
parentLogger = type.substr(0, found);
}
return GetLoggerByType(parentLogger);
}
@@ -255,7 +277,9 @@ std::string Log::GetTimestampStr()
bool Log::SetLogLevel(std::string const& name, int32 newLeveli, bool isLogger /* = true */)
{
if (newLeveli < 0)
{
return false;
}
LogLevel newLevel = LogLevel(newLeveli);
@@ -263,21 +287,29 @@ bool Log::SetLogLevel(std::string const& name, int32 newLeveli, bool isLogger /*
{
auto it = loggers.begin();
while (it != loggers.end() && it->second->getName() != name)
{
++it;
}
if (it == loggers.end())
{
return false;
}
it->second->setLogLevel(newLevel);
if (newLevel != LOG_LEVEL_DISABLED && newLevel > highestLogLevel)
{
highestLogLevel = newLevel;
}
}
else
{
Appender* appender = GetAppenderByName(name);
if (!appender)
{
return false;
}
appender->setLogLevel(newLevel);
}
@@ -288,7 +320,9 @@ bool Log::SetLogLevel(std::string const& name, int32 newLeveli, bool isLogger /*
void Log::outCharDump(char const* str, uint32 accountId, uint64 guid, char const* name)
{
if (!str || !ShouldLog("entities.player.dump", LOG_LEVEL_INFO))
{
return;
}
std::ostringstream ss;
ss << "== START DUMP == (account: " << accountId << " guid: " << guid << " name: " << name
@@ -306,7 +340,9 @@ void Log::outCharDump(char const* str, uint32 accountId, uint64 guid, char const
void Log::SetRealmId(uint32 id)
{
for (std::pair<uint8 const, std::unique_ptr<Appender>>& appender : appenders)
{
appender.second->setRealmId(id);
}
}
void Log::Close()
@@ -323,11 +359,15 @@ bool Log::ShouldLog(std::string const& type, LogLevel level) const
// Don't even look for a logger if the LogLevel is higher than the highest log levels across all loggers
if (level > highestLogLevel)
{
return false;
}
Logger const* logger = GetLoggerByType(type);
if (!logger)
{
return false;
}
LogLevel logLevel = logger->getLogLevel();
return logLevel != LOG_LEVEL_DISABLED && logLevel >= level;
@@ -354,7 +394,9 @@ void Log::LoadFromConfig()
if (!m_logsDir.empty())
if ((m_logsDir.at(m_logsDir.length() - 1) != '/') && (m_logsDir.at(m_logsDir.length() - 1) != '\\'))
{
m_logsDir.push_back('/');
}
ReadAppendersFromConfig();
ReadLoggersFromConfig();

View File

@@ -59,7 +59,9 @@ public:
void outCommand(uint32 account, Format&& fmt, Args&&... args)
{
if (!ShouldLog("commands.gm", LOG_LEVEL_INFO))
{
return;
}
outCommand(Acore::StringFormat(std::forward<Format>(fmt), std::forward<Args>(args)...), std::to_string(account));
}
@@ -99,7 +101,9 @@ public:
void outErrorDb(Format&& fmt, Args&& ... args)
{
if (!ShouldLog("sql.sql", LOG_LEVEL_ERROR))
{
return;
}
outMessage("sql.sql", LOG_LEVEL_ERROR, Acore::StringFormat(std::forward<Format>(fmt), std::forward<Args>(args)...));
}
@@ -120,7 +124,9 @@ public:
void outSQLDev(Format&& fmt, Args&& ... args)
{
if (!ShouldLog("sql.dev", LOG_LEVEL_INFO))
{
return;
}
outMessage("sql.dev", LOG_LEVEL_INFO, Acore::StringFormat(std::forward<Format>(fmt), std::forward<Args>(args)...));
}
@@ -129,7 +135,9 @@ public:
void outSQLDriver(Format&& fmt, Args&& ... args)
{
if (!ShouldLog("sql.driver", LOG_LEVEL_INFO))
{
return;
}
outMessage("sql.driver", LOG_LEVEL_INFO, Acore::StringFormat(std::forward<Format>(fmt), std::forward<Args>(args)...));
}
@@ -144,10 +152,14 @@ public:
void outDebug(DebugLogFilters filter, Format&& fmt, Args&& ... args)
{
if (!(_debugLogMask & filter))
{
return;
}
if (!ShouldLog("server", LOG_LEVEL_DEBUG))
{
return;
}
outMessage("server", LOG_LEVEL_DEBUG, Acore::StringFormat(std::forward<Format>(fmt), std::forward<Args>(args)...));
}

View File

@@ -44,5 +44,7 @@ void Logger::write(LogMessage* message) const
for (std::pair<uint8 const, Appender*> const& appender : appenders)
if (appender.second)
{
appender.second->write(message);
}
}