logger.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import logging
  2. class Logger(logging.Logger):
  3. def __init__(self, name):
  4. super().__init__(name)
  5. self.setLevel(level=logging.DEBUG)
  6. self.format_default = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
  7. self.console = None
  8. self.handler = None
  9. def screen_on(self, level=logging.DEBUG, format=None):
  10. if self.console:
  11. return None
  12. if format == None:
  13. formatter = logging.Formatter(self.format_default)
  14. else:
  15. formatter = logging.Formatter(format)
  16. self.console = logging.StreamHandler()
  17. self.console.setLevel(level)
  18. self.console.setFormatter(formatter)
  19. self.addHandler(self.console)
  20. def file_on(self, path='log.txt', level=logging.DEBUG, format=None):
  21. if self.handler:
  22. return None
  23. if format == None:
  24. formatter = logging.Formatter(self.format_default)
  25. else:
  26. formatter = logging.Formatter(format)
  27. self.handler = logging.FileHandler(path)
  28. self.handler.setLevel(level)
  29. self.handler.setFormatter(formatter)
  30. self.addHandler(self.handler)