Core/Logging: Fix crash when trying to log a message while config is being reloaded
Closes #7878
This commit is contained in:
@@ -281,9 +281,12 @@ void Log::vlog(LogFilterType filter, LogLevel level, char const* str, va_list ar
|
|||||||
|
|
||||||
void Log::write(LogMessage* msg)
|
void Log::write(LogMessage* msg)
|
||||||
{
|
{
|
||||||
msg->text.append("\n");
|
if (worker)
|
||||||
Logger* logger = GetLoggerByType(msg->type);
|
{
|
||||||
worker->enqueue(new LogOperation(logger, msg));
|
msg->text.append("\n");
|
||||||
|
Logger* logger = GetLoggerByType(msg->type);
|
||||||
|
worker->enqueue(new LogOperation(logger, msg));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Log::GetTimestampStr()
|
std::string Log::GetTimestampStr()
|
||||||
@@ -481,6 +484,7 @@ void Log::Close()
|
|||||||
void Log::LoadFromConfig()
|
void Log::LoadFromConfig()
|
||||||
{
|
{
|
||||||
Close();
|
Close();
|
||||||
|
worker = new LogWorker();
|
||||||
AppenderId = 0;
|
AppenderId = 0;
|
||||||
m_logsDir = ConfigMgr::GetStringDefault("LogsDir", "");
|
m_logsDir = ConfigMgr::GetStringDefault("LogsDir", "");
|
||||||
if (!m_logsDir.empty())
|
if (!m_logsDir.empty())
|
||||||
@@ -488,5 +492,4 @@ void Log::LoadFromConfig()
|
|||||||
m_logsDir.push_back('/');
|
m_logsDir.push_back('/');
|
||||||
ReadAppendersFromConfig();
|
ReadAppendersFromConfig();
|
||||||
ReadLoggersFromConfig();
|
ReadLoggersFromConfig();
|
||||||
worker = new LogWorker();
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user