logging_.py 839 B

12345678910111213141516171819202122232425262728293031
  1. from datetime import datetime
  2. import logging.config
  3. import sys
  4. from path import Path
  5. import yaml
  6. LOG_DIR = Path(r"%appdata%\logs").expandvars()
  7. LOG_DIR.makedirs_p()
  8. SYS_EXCEPT_HOOK = sys.excepthook
  9. def get(name="main", level=0, filename=""):
  10. # charge la configuration du logging depuis le fichier 'logging.yaml'
  11. configfile = Path(__file__).parent
  12. with open(configfile / 'logging.yaml', 'rt') as f:
  13. conf = yaml.load(f, Loader=yaml.FullLoader)
  14. if level:
  15. conf["loggers"][name]["level"] = level
  16. if not filename:
  17. filename = LOG_DIR / r'{}_{:%Y%m%d_%H%M}.log'.format(name, datetime.now())
  18. conf["handlers"]["file"]["filename"] = filename
  19. logging.config.dictConfig(conf)
  20. logger = logging.getLogger(name)
  21. logger.info("Log start written at {}".format(filename))
  22. return logger