import os import datetime import logging from pathlib import Path class KeepDir: def __init__(self): self.original_dir = os.getcwd() def __enter__(self): return self def __exit__(self, exc_type, exc_val, exc_tb): os.chdir(self.original_dir) def chdir(self, path): os.chdir(path) def setup_logger(): HOME = Path.cwd() log_directory = HOME / 'log' if not log_directory.exists(): log_directory.mkdir() with KeepDir() as keep_dir: keep_dir.chdir(log_directory) log_filename = f'{datetime.date.today()}.log' logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', handlers=[ logging.FileHandler(log_filename), ] ) logger = logging.getLogger(__name__) return logger