Salome HOME
merge from branch DEV tag mergeto_trunk_04apr08
[modules/yacs.git] / src / engine / Logger.hxx
1 #ifndef _LOGGER_HXX_
2 #define _LOGGER_HXX_
3
4 #include <string>
5 #include <vector>
6
7 namespace YACS
8 {
9   namespace ENGINE
10   {
11     class LogRecord;
12
13 /*! \brief Class for logging error messages
14  *
15  */
16     class Logger
17     {
18     public:
19       Logger(const std::string& name);
20       virtual ~Logger();
21       virtual const std::string& getName();
22       virtual void log(int level,const std::string& message,const char* filename,int line);
23       virtual void error(const std::string& message,const char* filename,int line);
24       virtual void fatal(const std::string& message,const char* filename,int line);
25       virtual void warning(const std::string& message,const char* filename,int line);
26       virtual LogRecord* makeRecord(const std::string& name,int level,const std::string& message,const char* filename,int line);
27       virtual void handle(LogRecord* record);
28       virtual void reset();
29       virtual std::string getStr();
30       virtual bool isEmpty();
31       virtual bool hasErrors();
32     protected:
33       std::string _name;
34       std::vector<LogRecord*> _records;
35     };
36   }
37 }
38
39 #endif