Core/Logging: Reload Logging options when .reload config is used

This commit is contained in:
Spp
2012-08-06 09:30:47 +02:00
parent 483fb42306
commit 5746b688fa
3 changed files with 17 additions and 11 deletions
+1
View File
@@ -398,6 +398,7 @@ void World::LoadConfigSettings(bool reload)
sLog->outError(LOG_FILTER_GENERAL, "World settings reload fail: can't read settings from %s.", ConfigMgr::GetFilename().c_str());
return;
}
sLog->LoadFromConfig();
}
///- Read the player limit and the Message of the day from the config file
+15 -11
View File
@@ -32,18 +32,8 @@
Log::Log()
{
SetRealmID(0);
AppenderId = 0;
/// Common log files data
m_logsDir = ConfigMgr::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('/');
m_logsTimestamp = "_" + GetTimestampStr();
ReadAppendersFromConfig();
ReadLoggersFromConfig();
worker = new LogWorker();
LoadFromConfig();
}
Log::~Log()
@@ -426,6 +416,20 @@ void Log::Close()
it->second = NULL;
}
appenders.clear();
loggers.clear();
delete worker;
worker = NULL;
}
void Log::LoadFromConfig()
{
Close();
AppenderId = 0;
m_logsDir = ConfigMgr::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('/');
ReadAppendersFromConfig();
ReadLoggersFromConfig();
worker = new LogWorker();
}
+1
View File
@@ -40,6 +40,7 @@ class Log
~Log();
public:
void LoadFromConfig();
void Close();
bool ShouldLog(LogFilterType type, LogLevel level) const;
bool SetLogLevel(std::string const& name, char const* level, bool isLogger = true);