logger.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # -*- coding: utf-8 -*-
  2. # @Author: privacy
  3. # @Date: 2022-07-14 13:26:15
  4. # @Last Modified by: privacy
  5. # @Last Modified time: 2022-07-14 13:27:46
  6. import logging
  7. class Logger:
  8. def __init__(self, name: str, console_handler_level: str = logging.INFO, fmt: str = '%(asctime)s: %(name)s: %(levelname)s: %(filename)s: %(lineno)d: %(funcName)s: %(message)s'):
  9. self.logger = logging.getLogger(name)
  10. self.logger.setLevel(logging.INFO)
  11. self.fmt = logging.Formatter(fmt)
  12. self.set_console_handler(console_handler_level)
  13. def set_console_handler(self, console_handler_level: str = logging.INFO) -> None:
  14. ch = logging.StreamHandler()
  15. ch.setLevel(console_handler_level)
  16. ch.setFormatter(self.fmt)
  17. self.logger.addHandler(ch)
  18. def set_file_handler(self, filename: str, mode: str = "a", file_handler_level: str = logging.WARNING) -> None:
  19. fh = logging.FileHandler(filename, mode=mode, encoding='utf-8')
  20. fh.setLevel(file_handler_level)
  21. fh.setFormatter(self.fmt)
  22. self.logger.addHandler(fh)
  23. def debug(self, msg):
  24. self.logger.debug(msg)
  25. def info(self, msg):
  26. self.logger.info(msg)
  27. def warning(self, msg):
  28. self.logger.warning(msg)
  29. def error(self, msg):
  30. self.logger.error(msg)
  31. def critical(self, msg):
  32. self.logger.critical(msg)