From f0f97ab851e6f5212f26f7d54f2adf74b35cdf87 Mon Sep 17 00:00:00 2001 From: Spp Date: Wed, 26 Sep 2012 13:42:53 +0200 Subject: Core/Logging: Fix crash when trying to log a message while config is being reloaded Closes #7878 --- src/server/shared/Logging/Log.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/server/shared/Logging/Log.cpp') diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp index ed65104d6ac..9f3c8f77739 100755 --- a/src/server/shared/Logging/Log.cpp +++ b/src/server/shared/Logging/Log.cpp @@ -281,9 +281,12 @@ void Log::vlog(LogFilterType filter, LogLevel level, char const* str, va_list ar void Log::write(LogMessage* msg) { - msg->text.append("\n"); - Logger* logger = GetLoggerByType(msg->type); - worker->enqueue(new LogOperation(logger, 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(); } -- cgit v1.2.3