Core/Logging: Fix crash when trying to log a message while config is being reloaded

Closes #7878
This commit is contained in:
Spp
2012-09-26 13:42:53 +02:00
parent 1b2a010a70
commit f0f97ab851
+4 -1
View File
@@ -280,11 +280,14 @@ void Log::vlog(LogFilterType filter, LogLevel level, char const* str, va_list ar
}
void Log::write(LogMessage* msg)
{
if (worker)
{
msg->text.append("\n");
Logger* logger = GetLoggerByType(msg->type);
worker->enqueue(new LogOperation(logger, msg));
}
}
std::string Log::GetTimestampStr()
{
@@ -481,6 +484,7 @@ void Log::Close()
void Log::LoadFromConfig()
{
Close();
worker = new LogWorker();
AppenderId = 0;
m_logsDir = ConfigMgr::GetStringDefault("LogsDir", "");
if (!m_logsDir.empty())
@@ -488,5 +492,4 @@ void Log::LoadFromConfig()
m_logsDir.push_back('/');
ReadAppendersFromConfig();
ReadLoggersFromConfig();
worker = new LogWorker();
}