#!/usr/bin/env python3

import os
import datetime

class Logger(object):

    def __init__(self, logpath=None):

        # initialize logging
        if logpath:
            self.logpath = logpath
        else:
            self.logpath = os.path.join("logs", str(datetime.datetime.now()))
        print("Path of logfile: " + self.logpath)

    def log(self, message):
        """
        Writing an error message & sometimes a traceback to a logfile in logs/
        and prints it.

        :param message: (string) Logger message to be displayed
        """
        time = str(datetime.datetime.now())
        line = "[" + time + "] " + message + "\n"
        with open(self.logpath, 'a') as f:
            try:
                f.write(line)
            except UnicodeEncodeError:
                self.log("Failed to save log message due to UTF-8 error. ")
        print(line, end="")