terom@185: #ifndef LOGGER_HH terom@185: #define LOGGER_HH terom@185: terom@185: #include terom@185: terom@185: #include terom@185: terom@185: enum LogLevel { terom@185: FATAL, terom@185: ERROR, terom@185: WARN, terom@185: INFO, terom@185: DEBUG, terom@185: }; terom@185: terom@185: class Logger { terom@185: private: terom@185: std::ostream &stream; terom@185: enum LogLevel level; terom@185: const char *module; terom@185: terom@185: public: terom@185: Logger (std::ostream &stream, enum LogLevel level, const char *module); terom@185: terom@224: template Logger& operator<< (const T val) { terom@185: stream << val; terom@185: terom@185: return *this; terom@185: } terom@185: terom@185: ~Logger (void); terom@185: }; terom@185: terom@185: std::ostream& operator<< (std::ostream &s, CL_NetComputer &c); terom@185: std::ostream& operator<< (std::ostream &s, CL_NetObject_Server &obj); terom@185: std::ostream& operator<< (std::ostream &s, CL_NetObject_Client &obj); terom@185: terom@185: #endif /* LOGGER_HH */