logger.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # time: 2023/3/20 15:19
  4. # file: logger.py
  5. # author: David
  6. # company: shenyang JY
  7. import logging, sys
  8. from logging.handlers import RotatingFileHandler
  9. def load_logger(config):
  10. logger = logging.getLogger()
  11. logger.setLevel(level=logging.DEBUG)
  12. # StreamHandler
  13. if config.do_log_print_to_screen:
  14. stream_handler = logging.StreamHandler(sys.stdout)
  15. stream_handler.setLevel(level=logging.INFO)
  16. formatter = logging.Formatter(datefmt='%Y/%m/%d %H:%M:%S',
  17. fmt='[ %(asctime)s ] %(message)s')
  18. stream_handler.setFormatter(formatter)
  19. logger.addHandler(stream_handler)
  20. # FileHandler
  21. if config.do_log_save_to_file:
  22. file_handler = RotatingFileHandler(config.log_save_path + "out.log", maxBytes=1024000, backupCount=5)
  23. file_handler.setLevel(level=logging.INFO)
  24. formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
  25. file_handler.setFormatter(formatter)
  26. logger.addHandler(file_handler)
  27. # 把config信息也记录到log 文件中
  28. config_dict = {}
  29. for key in dir(config):
  30. if not key.startswith("_"):
  31. config_dict[key] = getattr(config, key)
  32. config_str = str(config_dict)
  33. config_list = config_str[1:-1].split(", '")
  34. config_save_str = "\nConfig:\n" + "\n'".join(config_list)
  35. logger.info(config_save_str)
  36. return logger