summaryrefslogtreecommitdiff
path: root/src/common/Logging/Appender.cpp
diff options
context:
space:
mode:
authorKargatum <dowlandtop@yandex.com>2021-04-17 16:20:07 +0700
committerGitHub <noreply@github.com>2021-04-17 11:20:07 +0200
commit4af4cbd3d966a05c584f4b6c63f69517dad0677d (patch)
tree1c4329a0c64233aaa033ac3788c1e4ddc9422eb9 /src/common/Logging/Appender.cpp
parentb2861be1cd623182fd9e900c9ccfe8e063f28d8e (diff)
feat(Core/Logging): rework logging (#4692)
* feat(Core/Logging): rework logging * correct level for sql.sql * del unused config options * Correct build * correct after merge * whitespace 20:29:37 1. 'Player.cpp'. Replace (1) 20:29:37 2. 'ObjectMgr.cpp'. Replace (3) * 1 * correct logging * correct affter merge * 1 * 2 * LOG_LEVEL_WARN * #include "AppenderDB.h" * 3 * 4 * 5 * 1. 'WorldSocket.cpp'. Replace (1) * 6 * 1
Diffstat (limited to 'src/common/Logging/Appender.cpp')
-rw-r--r--src/common/Logging/Appender.cpp80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/common/Logging/Appender.cpp b/src/common/Logging/Appender.cpp
new file mode 100644
index 0000000000..660283f853
--- /dev/null
+++ b/src/common/Logging/Appender.cpp
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
+ * Copyright (C) 2008-2021 TrinityCore <http://www.trinitycore.org/>
+ */
+
+#include "Appender.h"
+#include "LogMessage.h"
+#include "StringFormat.h"
+#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) { }
+
+Appender::~Appender() { }
+
+uint8 Appender::getId() const
+{
+ return id;
+}
+
+std::string const& Appender::getName() const
+{
+ return name;
+}
+
+LogLevel Appender::getLogLevel() const
+{
+ return level;
+}
+
+AppenderFlags Appender::getFlags() const
+{
+ return flags;
+}
+
+void Appender::setLogLevel(LogLevel _level)
+{
+ level = _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);
+}
+
+char const* Appender::getLogLevelString(LogLevel level)
+{
+ switch (level)
+ {
+ case LOG_LEVEL_FATAL:
+ return "FATAL";
+ case LOG_LEVEL_ERROR:
+ return "ERROR";
+ case LOG_LEVEL_WARN:
+ return "WARN";
+ case LOG_LEVEL_INFO:
+ return "INFO";
+ case LOG_LEVEL_DEBUG:
+ return "DEBUG";
+ case LOG_LEVEL_TRACE:
+ return "TRACE";
+ default:
+ return "DISABLED";
+ }
+}