Core/Config: Refactored ConfigMgr

* Loading initial configuration files is now separate from loading any additional custom configs
This commit is contained in:
Shauren
2013-07-15 17:31:44 +02:00
parent baeecba6c9
commit 779a59e7e2
16 changed files with 470 additions and 424 deletions

View File

@@ -48,13 +48,13 @@ uint8 Log::NextAppenderId()
int32 GetConfigIntDefault(std::string base, const char* name, int32 value)
{
base.append(name);
return ConfigMgr::GetIntDefault(base.c_str(), value);
return sConfigMgr->GetIntDefault(base.c_str(), value);
}
std::string GetConfigStringDefault(std::string base, const char* name, const char* value)
{
base.append(name);
return ConfigMgr::GetStringDefault(base.c_str(), value);
return sConfigMgr->GetStringDefault(base.c_str(), value);
}
// Returns default logger if the requested logger is not found
@@ -83,7 +83,7 @@ void Log::CreateAppenderFromConfig(const char* name)
// if type = Console. optional1 = Color
std::string options = "Appender.";
options.append(name);
options = ConfigMgr::GetStringDefault(options.c_str(), "");
options = sConfigMgr->GetStringDefault(options.c_str(), "");
Tokenizer tokens(options, ',');
Tokenizer::const_iterator iter = tokens.begin();
uint8 size = tokens.size();
@@ -173,7 +173,7 @@ void Log::CreateLoggerFromConfig(const char* name)
std::string options = "Logger.";
options.append(name);
options = ConfigMgr::GetStringDefault(options.c_str(), "");
options = sConfigMgr->GetStringDefault(options.c_str(), "");
if (options.empty())
{
@@ -235,7 +235,7 @@ void Log::CreateLoggerFromConfig(const char* name)
void Log::ReadAppendersFromConfig()
{
std::istringstream ss(ConfigMgr::GetStringDefault("Appenders", ""));
std::istringstream ss(sConfigMgr->GetStringDefault("Appenders", ""));
std::string name;
do
@@ -249,7 +249,7 @@ void Log::ReadAppendersFromConfig()
void Log::ReadLoggersFromConfig()
{
std::istringstream ss(ConfigMgr::GetStringDefault("Loggers", ""));
std::istringstream ss(sConfigMgr->GetStringDefault("Loggers", ""));
std::string name;
do
@@ -457,11 +457,11 @@ void Log::LoadFromConfig()
{
Close();
if (ConfigMgr::GetBoolDefault("Log.Async.Enable", false))
if (sConfigMgr->GetBoolDefault("Log.Async.Enable", false))
worker = new LogWorker();
AppenderId = 0;
m_logsDir = ConfigMgr::GetStringDefault("LogsDir", "");
m_logsDir = sConfigMgr->GetStringDefault("LogsDir", "");
if (!m_logsDir.empty())
if ((m_logsDir.at(m_logsDir.length() - 1) != '/') && (m_logsDir.at(m_logsDir.length() - 1) != '\\'))
m_logsDir.push_back('/');