Log: Add possibility of set default logger (for initialization)

This commit is contained in:
Ardakaniz 2016-10-16 18:21:05 +02:00
parent fca5aeb9cd
commit 308a603324
2 changed files with 21 additions and 1 deletions

View File

@ -41,6 +41,7 @@ namespace Nz
static bool IsEnabled();
static void SetDefaultLogger(AbstractLogger* defaultLogger);
static void SetLogger(AbstractLogger* logger);
static void Write(const String& string);
@ -53,6 +54,7 @@ namespace Nz
static bool Initialize();
static void Uninitialize();
static AbstractLogger* s_defaultLogger;
static AbstractLogger* s_logger;
static bool s_enabled;
};

View File

@ -52,6 +52,22 @@ namespace Nz
return s_enabled;
}
/*!
* \brief Sets the default logger
*
* \param defaultLogger Default AbstractLogger
*/
void Log::SetDefaultLogger(AbstractLogger* defaultLogger)
{
if (s_defaultLogger != &s_stdLogger)
delete s_defaultLogger;
s_defaultLogger = defaultLogger;
if (!s_defaultLogger)
s_defaultLogger = &s_stdLogger;
}
/*!
* \brief Sets the logger
*
@ -111,7 +127,7 @@ namespace Nz
bool Log::Initialize()
{
SetLogger(new FileLogger());
SetLogger(s_defaultLogger);
return true;
}
@ -121,12 +137,14 @@ namespace Nz
void Log::Uninitialize()
{
SetDefaultLogger(nullptr);
SetLogger(nullptr);
}
NazaraStaticSignalImpl(Log, OnLogWrite);
NazaraStaticSignalImpl(Log, OnLogWriteError);
AbstractLogger* Log::s_defaultLogger = &s_stdLogger;
AbstractLogger* Log::s_logger = &s_stdLogger;
bool Log::s_enabled = true;
}