#ifndef __SSMD_LOGGER_H__ #define __SSMD_LOGGER_H__ #include #include #include #define LOG_IT logger << __FILE__ << "(" << __LINE__ << ") : " namespace SSMD { class Logger { public: Logger() : fout(), consoleLog(true) {} Logger(const std::string & fileName) : fout(fileName.c_str(), std::ios::app), logFile(fileName), consoleLog(!fout.is_open()) {} ~Logger() {}; bool setLogFile(const std::string & fileName); std::ostream & operator<<(const std::string & str); private: std::ofstream fout; std::string logFile; bool consoleLog; void _logDate(); }; } extern SSMD::Logger logger; #endif