from datetime import datetime import logging.config import sys from path import Path import yaml LOG_DIR = Path(r"%appdata%\logs").expandvars() LOG_DIR.makedirs_p() SYS_EXCEPT_HOOK = sys.excepthook def get(name="main", level=0, filename=""): # charge la configuration du logging depuis le fichier 'logging.yaml' configfile = Path(__file__).parent with open(configfile / 'logging.yaml', 'rt') as f: conf = yaml.load(f, Loader=yaml.FullLoader) if level: conf["loggers"][name]["level"] = level if not filename: filename = LOG_DIR / r'{}_{:%Y%m%d_%H%M}.log'.format(name, datetime.now()) conf["handlers"]["file"]["filename"] = filename logging.config.dictConfig(conf) logger = logging.getLogger(name) logger.info("Log start written at {}".format(filename)) return logger