logger.py 1.1 KB

12345678910111213141516171819202122232425
  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-08-09 16:44:04
  6. import logging
  7. class LoggerHandler(logging.Logger):
  8. def __init__(self, name: str, console_handler_level: str = logging.INFO, fmt: str = '%(levelname)s: %(asctime)s: %(name)s: %(filename)s: %(lineno)d: %(funcName)s: %(message)s'):
  9. super().__init__(name)
  10. self.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.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.addHandler(fh)