#ifndef LOGGER_H_
#define LOGGER_H_

#include <iostream>
#include <string>
#include <fstream>
#include <ctime>

class Logger {

	public:

    		Logger() {};
    		virtual ~Logger() {};

    		virtual void Log(const std::string message) = 0;
		const std::string getTime();
};


class ConsoleLogger: public Logger {

	public:

		ConsoleLogger() {};
		~ConsoleLogger() {};

    		void Log(const std::string message);
};


class FileLogger: public Logger {

	private:

		std::ofstream logfile;

	public:

		FileLogger(const char* OutputFile);
		FileLogger();
		~FileLogger();

		void Log(const std::string message);
};

#endif