log 等级: DEBUG 、INFO、WARNING(默认)、ERROR、CRITICAL 依次递增,意味着如果setLevel设为INFO,那么可以记录INFO及以上的log
如何将log同时输出到控制台和本地文件
配置文件:utils.py
# 配置log,logger是日志对象,handler是流处理器,console是控制台输出(没有console也可以, # 将不会在控制台输出,会在日志文件中输出) # :param log_path: 输出log路径 # :param logging_name: 记录中name,可随意 # :return: def logger_config(log_path, log_filename, logging_name): os.makedirs(log_path, mode=0o755, exist_ok=True) # 获取logger对象 logger = logging.getLogger(logging_name) logger.setLevel(logging.INFO) # 创建一个handler,用于写入日志文件 fh = logging.FileHandler(log_filename, mode=‘w‘) fh.setFormatter(logging.Formatter("[%(asctime)s]:%(levelname)s:%(message)s")) logger.addHandler(fh) # 创建一个handler,输出到控制台 ch = logging.StreamHandler() ch.setFormatter(logging.Formatter("%(message)s")) logger.addHandler(ch) return logger
使用
DataSerializer._getCurrentDateFilename() logger = utils.logger_config(DataSerializer._LOG_ROOT, DataSerializer._DATASERIALIZER_LOG_FILENAME, "dataSerizer")
logger.error(e + " " + str(string_info) + " " + str(datetime.now()))
原文:https://www.cnblogs.com/Revelation/p/15070409.html