日志可以颜色更加丰富,以区分不同的等级
可以使用自带的logging

系统标准库logging

  1. import logging
  2. # 定义全局日志开关
  3. GLOBAL_LOG_ENABLE = True
  4. # 全局日志等级
  5. GLOBAL_LOG_LEVEL = logging.NOTSET
  6. # 定义不同级别的日志颜色
  7. COLORS = {
  8. 'DEBUG': '\033[1;32m', # 绿色
  9. 'INFO': '\033[1;34m', # 蓝色
  10. 'WARNING': '\033[38;5;208m', # 橙色
  11. 'ERROR': '\033[1;31m', # 红色
  12. 'CRITICAL': '\033[1;35m', # 紫色
  13. }
  14. def get_logger(name, log_level=logging.DEBUG):
  15. logger = logging.getLogger(name)
  16. if not GLOBAL_LOG_ENABLE:
  17. logger.disabled = True
  18. return logger
  19. if GLOBAL_LOG_LEVEL > logging.NOTSET:
  20. log_level = GLOBAL_LOG_LEVEL
  21. logger.setLevel(log_level)
  22. # 定义控制台输出的handler
  23. console_handler = logging.StreamHandler()
  24. console_handler.setLevel(log_level)
  25. # 定义不同级别的日志输出颜色
  26. for level, color in COLORS.items():
  27. logging.addLevelName(getattr(logging, level), f'{color}{level}{color}')
  28. # 定义输出格式
  29. formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s: %(message)s')
  30. # 定义控制台输出的格式
  31. console_handler.setFormatter(formatter)
  32. # 添加handler
  33. logger.addHandler(console_handler)
  34. return logger
  35. if __name__ == '__main__':
  36. logger = get_logger(__name__)
  37. logger.critical("-------------------------------------------log_level=Default")
  38. logger.debug('debug message')
  39. logger.info('info message')
  40. logger.warning('warning message')
  41. logger.error('signal_error message')
  42. logger.critical('critical message')
  43. logger = get_logger("test", log_level=logging.ERROR)
  44. logger.critical("-------------------------------------------log_level=logging.ERROR")
  45. logger.debug('debug message')
  46. logger.info('info message')
  47. logger.warning('warning message')
  48. logger.error('signal_error message')
  49. logger.critical('critical message')
  50. print("print-----------------------------")

三方日志库loguru

安装:

  1. pip install loguru

使用:

  1. from loguru import logger
  2. import sys
  3. # 定义全局日志开关
  4. GLOBAL_LOG_ENABLE = True
  5. if GLOBAL_LOG_ENABLE:
  6. logger.enable("")
  7. else:
  8. logger.disable("")
  9. # 移除默认的日志处理器
  10. logger.remove()
  11. # 设置控制台日志级别
  12. logger.add(sink=sys.stdout, level="DEBUG")
  13. if __name__ == '__main__':
  14. # 示例日志记录
  15. logger.debug("这是一个调试日志")
  16. logger.info("这是一个信息日志")
  17. logger.warning("这是一个警告日志")
  18. logger.error("这是一个错误日志")
  19. logger.critical("这是一个严重错误日志")
  20. print("print-------------------------------------------")