Fixed second logger constructor.

master
madmaxoft 2013-10-12 11:26:42 +02:00
parent b88a70963c
commit 420e164ea6
2 changed files with 48 additions and 27 deletions

View File

@ -37,7 +37,39 @@ cMCLogger::cMCLogger(void)
{ {
AString FileName; AString FileName;
Printf(FileName, "LOG_%d.txt", (int)time(NULL)); Printf(FileName, "LOG_%d.txt", (int)time(NULL));
m_Log = new cLog(FileName); InitLog(FileName);
}
cMCLogger::cMCLogger(const AString & a_FileName)
{
InitLog(a_FileName);
}
cMCLogger::~cMCLogger()
{
m_Log->Log("--- Stopped Log ---\n");
delete m_Log;
if (this == s_MCLogger)
{
s_MCLogger = NULL;
}
}
void cMCLogger::InitLog(const AString & a_FileName)
{
m_Log = new cLog(a_FileName);
m_Log->Log("--- Started Log ---\n"); m_Log->Log("--- Started Log ---\n");
s_MCLogger = this; s_MCLogger = this;
@ -61,29 +93,6 @@ cMCLogger::cMCLogger(void)
cMCLogger::cMCLogger(const AString & a_FileName)
{
m_Log = new cLog(a_FileName);
}
cMCLogger::~cMCLogger()
{
m_Log->Log("--- Stopped Log ---\n");
delete m_Log;
if (this == s_MCLogger)
{
s_MCLogger = NULL;
}
}
void cMCLogger::LogSimple(const char* a_Text, int a_LogType /* = 0 */ ) void cMCLogger::LogSimple(const char* a_Text, int a_LogType /* = 0 */ )
{ {
switch( a_LogType ) switch( a_LogType )

View File

@ -13,8 +13,12 @@ class cLog;
class cMCLogger // tolua_export class cMCLogger // tolua_export
{ // tolua_export { // tolua_export
public: // tolua_export public: // tolua_export
/// Creates a logger with the default filename, "logs/LOG_<timestamp>.log"
cMCLogger(void); cMCLogger(void);
/// Creates a logger with the specified filename inside "logs" folder
cMCLogger(const AString & a_FileName); // tolua_export cMCLogger(const AString & a_FileName); // tolua_export
~cMCLogger(); // tolua_export ~cMCLogger(); // tolua_export
void Log(const char* a_Format, va_list a_ArgList); void Log(const char* a_Format, va_list a_ArgList);
@ -34,17 +38,25 @@ private:
csError, csError,
} ; } ;
cCriticalSection m_CriticalSection;
cLog * m_Log;
static cMCLogger * s_MCLogger;
/// Sets the specified color scheme in the terminal (TODO: if coloring available) /// Sets the specified color scheme in the terminal (TODO: if coloring available)
void SetColor(eColorScheme a_Scheme); void SetColor(eColorScheme a_Scheme);
/// Resets the color back to whatever is the default in the terminal /// Resets the color back to whatever is the default in the terminal
void ResetColor(void); void ResetColor(void);
cCriticalSection m_CriticalSection; /// Common initialization for all constructors, creates a logfile with the specified name and assigns s_MCLogger to this
cLog * m_Log; void InitLog(const AString & a_FileName);
static cMCLogger * s_MCLogger;
}; // tolua_export }; // tolua_export
extern void LOG(const char* a_Format, ...); extern void LOG(const char* a_Format, ...);
extern void LOGINFO(const char* a_Format, ...); extern void LOGINFO(const char* a_Format, ...);
extern void LOGWARN(const char* a_Format, ...); extern void LOGWARN(const char* a_Format, ...);