#!/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