mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-15 16:26:08 +00:00
refactor(Core/Misc): add braces and impove codestyle (#6402)
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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)...));
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user