logger.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import sys
  2. import loguru
  3. log_config = {
  4. "DEBUG": {"level": 10, "color": "purple"},
  5. "INFO": {"level": 20, "color": "green"},
  6. "TRAIN": {"level": 21, "color": "cyan"},
  7. "EVAL": {"level": 22, "color": "blue"},
  8. "WARNING": {"level": 30, "color": "yellow"},
  9. "ERROR": {"level": 40, "color": "red"},
  10. "CRITICAL": {"level": 50, "color": "bold_red"},
  11. }
  12. log_colors_config = {
  13. "DEBUG": "white", # cyan white
  14. "INFO": "green",
  15. "WARNING": "yellow",
  16. "ERROR": "red",
  17. "CRITICAL": "bold_red",
  18. }
  19. def get_logger(level: str = "INFO", console: bool = True, logger_file: str = None):
  20. """
  21. :param level: 选择日志的级别,可选trace,debug,info,warning,error,critical
  22. :param console: 是不进行控制台输出日志
  23. :param logger_file: 日志文件路径,None则表示不输出日志到文件
  24. :return:
  25. """
  26. logger = loguru.logger
  27. logger.remove()
  28. if console:
  29. logger.add(sys.stderr, level=level.upper())
  30. # 添加一个文件输出的内容
  31. # 目前每天一个日志文件,日志文件最多保存7天
  32. if logger_file is not None:
  33. logger.add(
  34. logger_file,
  35. enqueue=True,
  36. level=level.upper(),
  37. encoding="utf-8",
  38. rotation="00:00",
  39. retention="7 days",
  40. )
  41. return logger