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

View File

@ -52,6 +52,22 @@ namespace Nz
return s_enabled; 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 * \brief Sets the logger
* *
@ -111,7 +127,7 @@ namespace Nz
bool Log::Initialize() bool Log::Initialize()
{ {
SetLogger(new FileLogger()); SetLogger(s_defaultLogger);
return true; return true;
} }
@ -121,12 +137,14 @@ namespace Nz
void Log::Uninitialize() void Log::Uninitialize()
{ {
SetDefaultLogger(nullptr);
SetLogger(nullptr); SetLogger(nullptr);
} }
NazaraStaticSignalImpl(Log, OnLogWrite); NazaraStaticSignalImpl(Log, OnLogWrite);
NazaraStaticSignalImpl(Log, OnLogWriteError); NazaraStaticSignalImpl(Log, OnLogWriteError);
AbstractLogger* Log::s_defaultLogger = &s_stdLogger;
AbstractLogger* Log::s_logger = &s_stdLogger; AbstractLogger* Log::s_logger = &s_stdLogger;
bool Log::s_enabled = true; bool Log::s_enabled = true;
} }