diff options
author | Spp <spp@jorge.gr> | 2012-08-15 15:59:11 +0200 |
---|---|---|
committer | Spp <spp@jorge.gr> | 2012-08-15 15:59:11 +0200 |
commit | b77d88ec51e734a65f3d2ce3c69991980ac23ffd (patch) | |
tree | faec224b8fdb701fad2bc6a30265aca21eed054e | |
parent | a306d39bb4c20b48fb1a0a3d035a18c206205701 (diff) |
Core/Logging: Fix crash on authserver shutdown
Closes #7365
Closes #7325
-rwxr-xr-x | src/server/shared/Logging/Log.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp index 1dca5e71006..27f33754da9 100755 --- a/src/server/shared/Logging/Log.cpp +++ b/src/server/shared/Logging/Log.cpp @@ -181,12 +181,18 @@ void Log::CreateLoggerFromConfig(const char* name) options.append(name); options = ConfigMgr::GetStringDefault(options.c_str(), ""); + if (options.empty()) + { + fprintf(stderr, "Log::CreateLoggerFromConfig: Missing config option Logger.%s\n", name); + return; + } + Tokens tokens(options, ','); Tokens::iterator iter = tokens.begin(); if (tokens.size() != 3) { - fprintf(stderr, "Log::CreateLoggerFromConfig: Wrong configuration for logger %s. Config line: %s\n", name, options.c_str()); + fprintf(stderr, "Log::CreateLoggerFromConfig: Wrong config option Logger.%s=%s\n", name, options.c_str()); return; } @@ -467,15 +473,15 @@ void Log::SetRealmID(uint32 id) void Log::Close() { + delete worker; + worker = NULL; + loggers.clear(); for (AppenderMap::iterator it = appenders.begin(); it != appenders.end(); ++it) { delete it->second; it->second = NULL; } appenders.clear(); - loggers.clear(); - delete worker; - worker = NULL; } void Log::LoadFromConfig() |