mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-19 22:49:39 -04:00
Merge pull request #14317 from Naios/typesafelog
Type safe logging
(cherry picked from commit cc0c9add5a)
Conflicts:
src/server/bnetserver/CMakeLists.txt
src/server/game/Server/WorldSocketMgr.cpp
src/server/shared/Logging/AppenderDB.cpp
src/server/worldserver/CMakeLists.txt
This commit is contained in:
@@ -18,6 +18,10 @@
|
||||
#include "Appender.h"
|
||||
#include "Common.h"
|
||||
#include "Util.h"
|
||||
#include "StringFormat.h"
|
||||
|
||||
#include <utility>
|
||||
#include <sstream>
|
||||
|
||||
std::string LogMessage::getTimeStr(time_t time)
|
||||
{
|
||||
@@ -68,38 +72,36 @@ void Appender::setLogLevel(LogLevel _level)
|
||||
level = _level;
|
||||
}
|
||||
|
||||
void Appender::write(LogMessage& message)
|
||||
void Appender::write(LogMessage* message)
|
||||
{
|
||||
if (!level || level > message.level)
|
||||
if (!level || level > message->level)
|
||||
return;
|
||||
|
||||
message.prefix.clear();
|
||||
std::ostringstream ss;
|
||||
|
||||
if (flags & APPENDER_FLAGS_PREFIX_TIMESTAMP)
|
||||
message.prefix.append(message.getTimeStr());
|
||||
ss << message->getTimeStr();
|
||||
|
||||
if (flags & APPENDER_FLAGS_PREFIX_LOGLEVEL)
|
||||
{
|
||||
if (!message.prefix.empty())
|
||||
message.prefix.push_back(' ');
|
||||
if (ss.rdbuf()->in_avail() == 0)
|
||||
ss << ' ';
|
||||
|
||||
char text[MAX_QUERY_LEN];
|
||||
snprintf(text, MAX_QUERY_LEN, "%-5s", Appender::getLogLevelString(message.level));
|
||||
message.prefix.append(text);
|
||||
ss << Trinity::StringFormat("%-5s", Appender::getLogLevelString(message->level));
|
||||
}
|
||||
|
||||
if (flags & APPENDER_FLAGS_PREFIX_LOGFILTERTYPE)
|
||||
{
|
||||
if (!message.prefix.empty())
|
||||
message.prefix.push_back(' ');
|
||||
if (ss.rdbuf()->in_avail() == 0)
|
||||
ss << ' ';
|
||||
|
||||
message.prefix.push_back('[');
|
||||
message.prefix.append(message.type);
|
||||
message.prefix.push_back(']');
|
||||
ss << '[' << message->type << ']';
|
||||
}
|
||||
|
||||
if (!message.prefix.empty())
|
||||
message.prefix.push_back(' ');
|
||||
if (ss.rdbuf()->in_avail() == 0)
|
||||
ss << ' ';
|
||||
|
||||
message->prefix = std::move(ss.str());
|
||||
_write(message);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user