Skip to content
Snippets Groups Projects
Logger.cpp 998 B
Newer Older
  • Learn to ignore specific revisions
  • Radim Vavřík's avatar
    Radim Vavřík committed
    // Logger.cpp
    
    #include <iostream>
    #include <string>
    #include "Logger.h"
    
    
    namespace math1d_cl
    {
    	///
    	/// Default Logger ctor sets logging to the console.
    	///
    	Logger::Logger():m_logTarget(0)
    	{}
    
    	Logger::Logger(Logger &origin)
    	{
    		m_logFilePath = origin.m_logFilePath;
    		m_logTarget = origin.m_logTarget;
    
    	}
    
    	Logger::Logger(int logTarget, std::string logFilePath):m_logTarget(logTarget),m_logFilePath(logFilePath)
    	{
    		if(m_logTarget == 1)
    		{
    			m_logFile.open(logFilePath);
    
    			if(m_logFile.is_open())
    			{
    				time_t now;
    				time(&now);
    				m_logFile << "Log file created at " << ctime(&now) << std::endl;
    			}
    		}
    	}
    
    	Logger::~Logger()
    	{
    		if(m_logFile.is_open())
    		{
    			m_logFile.close();
    		}
    	}
    
    	void Logger::log(const std::string& text)
    	{
    		if(m_logTarget == 0)
    		{
    			std::cout << text << std::endl;
    		}
    		else if(m_logTarget == 1)
    		{
    			m_logFile << text << std::endl;
    		}
    		// no operations for m_logTarget == 2
    	}		
    }