From 420e164ea6d677c8a114427a350f1e17e86b9be0 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sat, 12 Oct 2013 11:26:42 +0200 Subject: [PATCH] Fixed second logger constructor. --- source/MCLogger.cpp | 57 ++++++++++++++++++++++++++------------------- source/MCLogger.h | 18 +++++++++++--- 2 files changed, 48 insertions(+), 27 deletions(-) diff --git a/source/MCLogger.cpp b/source/MCLogger.cpp index 2870d8ba..4f3e5dc0 100644 --- a/source/MCLogger.cpp +++ b/source/MCLogger.cpp @@ -37,7 +37,39 @@ cMCLogger::cMCLogger(void) { AString FileName; 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"); 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 */ ) { switch( a_LogType ) diff --git a/source/MCLogger.h b/source/MCLogger.h index 6f7d34e6..c949a4cd 100644 --- a/source/MCLogger.h +++ b/source/MCLogger.h @@ -13,8 +13,12 @@ class cLog; class cMCLogger // tolua_export { // tolua_export public: // tolua_export + /// Creates a logger with the default filename, "logs/LOG_.log" cMCLogger(void); + + /// Creates a logger with the specified filename inside "logs" folder cMCLogger(const AString & a_FileName); // tolua_export + ~cMCLogger(); // tolua_export void Log(const char* a_Format, va_list a_ArgList); @@ -34,17 +38,25 @@ private: csError, } ; + cCriticalSection m_CriticalSection; + cLog * m_Log; + static cMCLogger * s_MCLogger; + + /// Sets the specified color scheme in the terminal (TODO: if coloring available) void SetColor(eColorScheme a_Scheme); /// Resets the color back to whatever is the default in the terminal void ResetColor(void); - cCriticalSection m_CriticalSection; - cLog * m_Log; - static cMCLogger * s_MCLogger; + /// Common initialization for all constructors, creates a logfile with the specified name and assigns s_MCLogger to this + void InitLog(const AString & a_FileName); }; // tolua_export + + + + extern void LOG(const char* a_Format, ...); extern void LOGINFO(const char* a_Format, ...); extern void LOGWARN(const char* a_Format, ...);