diff options
author | Spp <spp@jorge.gr> | 2012-09-26 13:42:53 +0200 |
---|---|---|
committer | Spp <spp@jorge.gr> | 2012-09-26 13:42:53 +0200 |
commit | f0f97ab851e6f5212f26f7d54f2adf74b35cdf87 (patch) | |
tree | ef2f42b495c95c43dcd7e0b21e9d5567b18c2f87 /src/server/shared/Logging/Log.cpp | |
parent | 1b2a010a70ca4462292168da36466341faa537d7 (diff) |
Core/Logging: Fix crash when trying to log a message while config is being reloaded
Closes #7878
Diffstat (limited to 'src/server/shared/Logging/Log.cpp')
-rwxr-xr-x | src/server/shared/Logging/Log.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
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(); } |