Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // .h
- class Logger {
- public:
- void Log(const std::string &message);
- Logger &operator<<(const std::string& message);
- static Logger* Get();
- Logger(const Logger&) = delete;
- Logger(const Logger&&) = delete;
- Logger & operator=(const Logger&) = delete;
- Logger & operator=(const Logger&&) = delete;
- private:
- Logger() = default;
- ~Logger() = default;
- static std::mutex mtx;
- static std::string fileName;
- static Logger *pThis;
- static std::ofstream logFile;
- };
- // .cpp
- Logger *Logger::Get() {
- if (pThis == nullptr) {
- pThis = new Logger();
- logFile.open(fileName, std::ios::out | std::ios::app);
- logFile << "Start log session : " << Utils::getCurrentDateTime() << std::endl;
- }
- return pThis;
- }
- void Logger::Log(const std::string &message) {
- std::lock_guard<std::mutex> lock(mtx);
- logFile << Utils::getCurrentDateTime() << " : " << message << std::endl;
- }
- Logger &Logger::operator<<(const std::string &message) {
- Log(message);
- return *pThis;
- }
- std::string Logger::fileName = "log.txt";
- std::ofstream Logger::logFile;
- Logger* Logger::pThis = nullptr;
- std::mutex Logger::mtx;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement