__init__.py 839 B

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/env python3
  2. # -*- coding: UTF-8 -*-
  3. import logging
  4. logger = logging.getLogger(__name__)
  5. logger.setLevel(logging.INFO)
  6. FMT = '{}[%(asctime)s %(lineno)d@%(filename)s:%(name)s]\033[0m %(message)s'
  7. class LogLevelFilter(object):
  8. def __init__(self, level):
  9. self._level = level
  10. def filter(self, logRecord):
  11. return logRecord.levelno <= self._level
  12. def set_level_color(lvl, color):
  13. handler = logging.StreamHandler()
  14. handler.setLevel(lvl)
  15. handler.addFilter(LogLevelFilter(lvl))
  16. handler.setFormatter(logging.Formatter(FMT.format(color), '%H:%M:%S'))
  17. logger.addHandler(handler)
  18. set_level_color(logging.INFO, '\033[1;32m')
  19. set_level_color(logging.WARN, '\033[1;33m')
  20. set_level_color(logging.ERROR, '\033[1;31m')
  21. if __name__ == '__main__':
  22. logger.info("info")
  23. logger.warning("warn")