00001
00002
00003
00004
00005
00006
00007 #ifndef LOGGERMAIN_H
00008 #define LOGGERMAIN_H
00009
00010 #include "SugoiTools\config.h"
00011 #include "SugoiTools\logger_debug.h"
00012 #include "SugoiTools\logger_file.h"
00013 #include "SugoiTools\logger_msgbox.h"
00014
00015 using namespace std;
00016
00017 namespace SGE{
00018
00019 class CLoggerMain
00020 {
00021 public:
00022 CLoggerMain();
00023 ~CLoggerMain();
00024
00025 enum ENUM_LOG_DEST{
00026 LOG_NULL,
00027 LOG_TO_CONSOLE,
00028 LOG_TO_FILE,
00029 LOG_TO_MSGBOX
00030 };
00031
00032 void SelectMainLogger(ENUM_LOG_DEST _MainLog);
00033
00034 static ENUM_LOG_DEST MainDestLog;
00035 static ILogger& Log();
00036
00037
00038 CLoggerDebug * LogConsole;
00039 CLoggerFile * LogFile;
00040 CLoggerMsgBox * LogMsgBox;
00041 static CLoggerMain * MainLogger;
00042 };
00043
00044 #define SG_NOTICE_LOG_C(_MSG) SGE::ILogger::Log(_MSG);
00045 #define SG_NOTICE_LOG(_MSG) SGE::ILogger::Log()<< _MSG;
00046
00047 #define SG_WARNING_LOG_C(_MSG){\
00048 SGE::ILogger::Log("\n\n%s (L.%d) WARNING :", __FILE__, __LINE__);\
00049 SGE::ILogger::Log(_MSG);}
00050
00051 #define SG_WARNING_LOG(_MSG){\
00052 SGE::ILogger::Log("\n\n%s (L.%d) WARNING :", __FILE__, __LINE__);\
00053 SGE::ILogger::Log() << (std::string)_MSG;}
00054
00055 #define SG_ERROR_LOG_C(_MSG){\
00056 SGE::ILogger::Log("\n\n%s (L.%d) ERROR :", __FILE__, __LINE__);\
00057 SGE::ILogger::Log(_MSG);}
00058
00059 #define SG_ERROR_LOG(_MSG){\
00060 SGE::ILogger::Log("\n\n%s (L.%d) ERROR :", __FILE__, __LINE__);\
00061 SGE::ILogger::Log() << (std::string)_MSG;}
00062
00063 };
00064 #endif//LOGGERMAIN_H