Core/Logging: Fix crash on authserver shutdown

Closes #7365
Closes #7325
This commit is contained in:
Spp
2012-08-15 15:59:11 +02:00
parent a306d39bb4
commit b77d88ec51
+10 -4
View File
@@ -181,12 +181,18 @@ void Log::CreateLoggerFromConfig(const char* name)
options.append(name); options.append(name);
options = ConfigMgr::GetStringDefault(options.c_str(), ""); 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 tokens(options, ',');
Tokens::iterator iter = tokens.begin(); Tokens::iterator iter = tokens.begin();
if (tokens.size() != 3) 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; return;
} }
@@ -467,15 +473,15 @@ void Log::SetRealmID(uint32 id)
void Log::Close() void Log::Close()
{ {
delete worker;
worker = NULL;
loggers.clear();
for (AppenderMap::iterator it = appenders.begin(); it != appenders.end(); ++it) for (AppenderMap::iterator it = appenders.begin(); it != appenders.end(); ++it)
{ {
delete it->second; delete it->second;
it->second = NULL; it->second = NULL;
} }
appenders.clear(); appenders.clear();
loggers.clear();
delete worker;
worker = NULL;
} }
void Log::LoadFromConfig() void Log::LoadFromConfig()