| import coloredlogs | |
| import logging | |
| import os | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| # creates a default logger for the project. We declare it in the global scope | |
| # so it acts like a singleton | |
| logger = logging.getLogger("Flashcards") | |
| log_level = os.getenv("LOG_LEVEL", "INFO") | |
| logger.setLevel(log_level) | |
| # Log format | |
| formatter = coloredlogs.ColoredFormatter( | |
| "%(asctime)s - %(name)s - %(levelname)s - %(message)s") | |
| # stout | |
| ch = logging.StreamHandler() | |
| ch.setFormatter(formatter) | |
| # colored output so log messages stand out more | |
| # coloredlogs.install(level=log_level, logger=logger) | |
| # file handler | |
| fh = logging.FileHandler("logs.log") | |
| fh.setFormatter(formatter) | |
| logger.addHandler(fh) | |
| logger.addHandler(ch) | |