aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Logging/Appender.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/shared/Logging/Appender.cpp')
-rw-r--r--src/server/shared/Logging/Appender.cpp34
1 files changed, 18 insertions, 16 deletions
diff --git a/src/server/shared/Logging/Appender.cpp b/src/server/shared/Logging/Appender.cpp
index dff931e3da8..ca40a857419 100644
--- a/src/server/shared/Logging/Appender.cpp
+++ b/src/server/shared/Logging/Appender.cpp
@@ -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);
}