aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common/Logging/Log.cpp20
-rw-r--r--src/common/Logging/Log.h10
2 files changed, 15 insertions, 15 deletions
diff --git a/src/common/Logging/Log.cpp b/src/common/Logging/Log.cpp
index 9f44654f38d..d67ae7c8a56 100644
--- a/src/common/Logging/Log.cpp
+++ b/src/common/Logging/Log.cpp
@@ -143,8 +143,7 @@ void Log::CreateLoggerFromConfigLine(std::string const& loggerName, std::string
return;
}
- std::unique_ptr<Logger>& logger = loggers[name];
- if (logger)
+ if (loggers.find(name) != loggers.end())
{
fprintf(stderr, "Error while configuring Logger %s. Already defined\n", name.c_str());
return;
@@ -160,7 +159,8 @@ void Log::CreateLoggerFromConfigLine(std::string const& loggerName, std::string
if (level < lowestLogLevel)
lowestLogLevel = level;
- logger = std::make_unique<Logger>(name, level);
+ Logger* logger = new Logger(name, level);
+ loggers[logger->getName()].reset(logger);
//fprintf(stdout, "Log::CreateLoggerFromConfig: Created Logger %s, Level %u\n", name.c_str(), level);
for (std::string_view appenderName : Trinity::Tokenize(tokens[1], ' ', false))
@@ -206,11 +206,11 @@ void Log::ReadLoggersFromConfig()
Logger* rootLogger = new Logger(LOGGER_ROOT, LOG_LEVEL_ERROR);
rootLogger->addAppender(appender->getId(), appender);
- loggers[LOGGER_ROOT].reset(rootLogger);
+ loggers[rootLogger->getName()].reset(rootLogger);
Logger* serverLogger = new Logger("server", LOG_LEVEL_INFO);
serverLogger->addAppender(appender->getId(), appender);
- loggers["server"].reset(serverLogger);
+ loggers[serverLogger->getName()].reset(serverLogger);
}
}
@@ -221,9 +221,9 @@ void Log::RegisterAppender(uint8 index, AppenderCreatorFn appenderCreateFn)
appenderFactory[index] = appenderCreateFn;
}
-void Log::outMessage(std::string const& filter, LogLevel level, std::string&& message)
+void Log::outMessage(std::string_view filter, LogLevel level, std::string&& message)
{
- write(std::make_unique<LogMessage>(level, filter, std::move(message)));
+ write(std::make_unique<LogMessage>(level, std::string(filter), std::move(message)));
}
void Log::outCommand(std::string&& message, std::string&& param1)
@@ -244,7 +244,7 @@ void Log::write(std::unique_ptr<LogMessage>&& msg) const
logger->write(msg.get());
}
-Logger const* Log::GetLoggerByType(std::string const& type) const
+Logger const* Log::GetLoggerByType(std::string_view type) const
{
auto it = loggers.find(type);
if (it != loggers.end())
@@ -253,7 +253,7 @@ Logger const* Log::GetLoggerByType(std::string const& type) const
if (type == LOGGER_ROOT)
return nullptr;
- std::string parentLogger = LOGGER_ROOT;
+ std::string_view parentLogger = LOGGER_ROOT;
size_t found = type.find_last_of('.');
if (found != std::string::npos)
parentLogger = type.substr(0, found);
@@ -350,7 +350,7 @@ void Log::Close()
appenders.clear();
}
-bool Log::ShouldLog(std::string const& type, LogLevel level) const
+bool Log::ShouldLog(std::string_view type, LogLevel level) const
{
// TODO: Use cache to store "Type.sub1.sub2": "Type" equivalence, should
// Speed up in cases where requesting "Type.sub1.sub2" but only configured
diff --git a/src/common/Logging/Log.h b/src/common/Logging/Log.h
index 5ec20040187..83c00141455 100644
--- a/src/common/Logging/Log.h
+++ b/src/common/Logging/Log.h
@@ -65,11 +65,11 @@ class TC_COMMON_API Log
void SetSynchronous(); // Not threadsafe - should only be called from main() after all threads are joined
void LoadFromConfig();
void Close();
- bool ShouldLog(std::string const& type, LogLevel level) const;
+ bool ShouldLog(std::string_view type, LogLevel level) const;
bool SetLogLevel(std::string const& name, int32 level, bool isLogger = true);
template<typename Format, typename... Args>
- inline void outMessage(std::string const& filter, LogLevel const level, Format&& fmt, Args&&... args)
+ inline void outMessage(std::string_view filter, LogLevel const level, Format&& fmt, Args&&... args)
{
outMessage(filter, level, Trinity::StringFormat(std::forward<Format>(fmt), std::forward<Args>(args)...));
}
@@ -103,7 +103,7 @@ class TC_COMMON_API Log
static std::string GetTimestampStr();
void write(std::unique_ptr<LogMessage>&& msg) const;
- Logger const* GetLoggerByType(std::string const& type) const;
+ Logger const* GetLoggerByType(std::string_view type) const;
Appender* GetAppenderByName(std::string_view name);
uint8 NextAppenderId();
void CreateAppenderFromConfig(std::string const& name);
@@ -111,12 +111,12 @@ class TC_COMMON_API Log
void ReadAppendersFromConfig();
void ReadLoggersFromConfig();
void RegisterAppender(uint8 index, AppenderCreatorFn appenderCreateFn);
- void outMessage(std::string const& filter, LogLevel level, std::string&& message);
+ void outMessage(std::string_view filter, LogLevel level, std::string&& message);
void outCommand(std::string&& message, std::string&& param1);
std::unordered_map<uint8, AppenderCreatorFn> appenderFactory;
std::unordered_map<uint8, std::unique_ptr<Appender>> appenders;
- std::unordered_map<std::string, std::unique_ptr<Logger>> loggers;
+ std::unordered_map<std::string_view, std::unique_ptr<Logger>> loggers;
uint8 AppenderId;
LogLevel lowestLogLevel;