00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KEOS_LOGGER_H
00023 #define KEOS_LOGGER_H
00024
00025 #include "KeosPrerequisites.h"
00026
00027 namespace Keos
00028 {
00029
00033 class KEOS_EXPORT ILogger
00034 {
00035 public :
00036
00040 virtual ~ILogger();
00041
00047 static void SetLogger(ILogger* pLogger);
00048
00053 static void Log(const char* strFormat, ...);
00054
00055 protected :
00056
00060 String CurrentDate() const;
00061
00065 String CurrentTime() const;
00066
00067 private :
00068
00072 virtual void Write(const String& strMessage) = 0;
00073
00077 static void Destroy();
00078
00080 static ILogger* ms_pInstance;
00081
00082 friend class CRoot;
00083 };
00084
00085
00086
00090 class KEOS_EXPORT CLoggerFile : public ILogger
00091 {
00092 public :
00093
00097 CLoggerFile(const String& strFilename = "Output.log");
00098
00099 private :
00100
00104 ~CLoggerFile();
00105
00109 virtual void Write(const String& strMessage);
00110
00112 std::ofstream m_File;
00113 };
00114
00115 }
00116
00117 #endif // KEOS_LOGGER_H