aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Logging/Log.cpp
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2012-09-26 13:42:53 +0200
committerSpp <spp@jorge.gr>2012-09-26 13:42:53 +0200
commitf0f97ab851e6f5212f26f7d54f2adf74b35cdf87 (patch)
treeef2f42b495c95c43dcd7e0b21e9d5567b18c2f87 /src/server/shared/Logging/Log.cpp
parent1b2a010a70ca4462292168da36466341faa537d7 (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-xsrc/server/shared/Logging/Log.cpp11
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();
}