Rev 9 | Rev 84 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#pragma once#include "../Utils/StringList.h"#include <vector>#include <stdarg.h>typedef struct {Utils::String sText;int iLevel;} SLog;class SPKEXPORT CLog{public:typedef CLinkList<SLog> LogList;typedef CListNode<SLog>* LogNode;enum LogLevel {Log_All = 0,Log_Normal = 1,Log_IO = 2,Log_EditPackage = 4,Log_File = 8,Log_Read = 16,};protected:// private constructorCLog(void);virtual ~CLog(void);private:LogList m_lLogs;public:static CLog *m_pInstance;static CLog *create();static void release();static void log(int iLevel, const Utils::String &sLogText);static void logf(int iLevel, const char *sLogText, ...);void _log(int iLevel, const Utils::String &sLogText);void _logf(int iLevel, const char *sLogText, ...);virtual void displayLog(int iLevel, const Utils::String &sLogText) const;void clear();const SLog *firstLog() const;int count() const;};//TODO: move thisclass SPKEXPORT CConsoleLog : public CLog{public:static CLog *create(){if ( !CLog::m_pInstance ) {CLog::m_pInstance = new CConsoleLog();}return CLog::m_pInstance;}virtual ~CConsoleLog(void){}virtual void displayLog(int iLevel, const Utils::String &sLogText) const{printf("%s\n", sLogText.c_str());}};