12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # time: 2023/3/20 15:19
- # file: logger.py
- # author: David
- # company: shenyang JY
- import logging, sys
- from logging.handlers import RotatingFileHandler
- def load_logger(config):
- logger = logging.getLogger()
- logger.setLevel(level=logging.DEBUG)
- # StreamHandler
- if config.do_log_print_to_screen:
- stream_handler = logging.StreamHandler(sys.stdout)
- stream_handler.setLevel(level=logging.INFO)
- formatter = logging.Formatter(datefmt='%Y/%m/%d %H:%M:%S',
- fmt='[ %(asctime)s ] %(message)s')
- stream_handler.setFormatter(formatter)
- logger.addHandler(stream_handler)
- # FileHandler
- if config.do_log_save_to_file:
- file_handler = RotatingFileHandler(config.log_save_path + "out.log", maxBytes=1024000, backupCount=5)
- file_handler.setLevel(level=logging.INFO)
- formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
- file_handler.setFormatter(formatter)
- logger.addHandler(file_handler)
- # 把config信息也记录到log 文件中
- config_dict = {}
- for key in dir(config):
- if not key.startswith("_"):
- config_dict[key] = getattr(config, key)
- config_str = str(config_dict)
- config_list = config_str[1:-1].split(", '")
- config_save_str = "\nConfig:\n" + "\n'".join(config_list)
- logger.info(config_save_str)
- return logger
|