aboutsummaryrefslogtreecommitdiff
path: root/src/common/Logging/Log.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-05-27 11:47:51 +0200
committerShauren <shauren.trinity@gmail.com>2021-05-27 11:47:51 +0200
commit480039f913e5013ee4746c21818e6c2169739bf4 (patch)
tree5829314a2bb448aaa289f4f79accddfd32bc5f26 /src/common/Logging/Log.cpp
parent3c08eb190f8fff96a17c6cb61892f813940648ce (diff)
Core/Logging: Add functions that allow creating loggers and appenders from other sources than config files
Diffstat (limited to 'src/common/Logging/Log.cpp')
-rw-r--r--src/common/Logging/Log.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/common/Logging/Log.cpp b/src/common/Logging/Log.cpp
index ecc6cbf2b90..169dfbe80ba 100644
--- a/src/common/Logging/Log.cpp
+++ b/src/common/Logging/Log.cpp
@@ -56,7 +56,7 @@ Appender* Log::GetAppenderByName(std::string const& name)
return it == appenders.end() ? nullptr : it->second.get();
}
-void Log::CreateAppenderFromConfig(std::string const& appenderName)
+void Log::CreateAppenderFromConfigLine(std::string const& appenderName, std::string const& options)
{
if (appenderName.empty())
return;
@@ -64,7 +64,6 @@ void Log::CreateAppenderFromConfig(std::string const& appenderName)
// Format = type, level, flags, optional1, optional2
// if type = File. optional1 = file and option2 = mode
// if type = Console. optional1 = Color
- std::string options = sConfigMgr->GetStringDefault(appenderName, "");
Tokenizer tokens(options, ',');
auto iter = tokens.begin();
@@ -109,16 +108,20 @@ void Log::CreateAppenderFromConfig(std::string const& appenderName)
}
}
-void Log::CreateLoggerFromConfig(std::string const& appenderName)
+void Log::CreateAppenderFromConfig(std::string const& appenderName)
{
- if (appenderName.empty())
+ CreateAppenderFromConfigLine(appenderName, sConfigMgr->GetStringDefault(appenderName, ""));
+}
+
+void Log::CreateLoggerFromConfigLine(std::string const& loggerName, std::string const& options)
+{
+ if (loggerName.empty())
return;
LogLevel level = LOG_LEVEL_DISABLED;
uint8 type = uint8(-1);
- std::string options = sConfigMgr->GetStringDefault(appenderName, "");
- std::string name = appenderName.substr(7);
+ std::string name = loggerName.substr(7);
if (options.empty())
{
@@ -172,6 +175,11 @@ void Log::CreateLoggerFromConfig(std::string const& appenderName)
}
}
+void Log::CreateLoggerFromConfig(std::string const& loggerName)
+{
+ CreateLoggerFromConfigLine(loggerName, sConfigMgr->GetStringDefault(loggerName, ""));
+}
+
void Log::ReadAppendersFromConfig()
{
std::vector<std::string> keys = sConfigMgr->GetKeysByString("Appender.");