一 logging.info 对打印的格式有要求,只能在一个字符串
@staticmethod
def initLogging(file_name, log_level=logging.INFO): # logging.INFO DEBUG
"""
保存日志文件
"""
log_folder = './log_file'
# 如果文件夹不存在,创建文件夹
if not os.path.exists(log_folder):
os.makedirs(log_folder)
# 配置文件日志
log_formatter = logging.Formatter('%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s')
log_file = f'{log_folder}/{file_name}_log.log'
# 使用 RotatingFileHandler,每个日志文件最大大小为 10 MB,保留 7 个旧文件
file_handler = RotatingFileHandler(log_file, mode='a', maxBytes=int(1e7), backupCount=7)
file_handler.setFormatter(log_formatter)
file_handler.setLevel(log_level)
# 配置控制台日志
console_handler = logging.StreamHandler() # 创建控制台处理程序
console_handler.setFormatter(log_formatter)
console_handler.setLevel(log_level)
# 将配置应用到全局日志系统
logging.basicConfig(level=log_level,
datefmt='%Y-%m-%d %H:%M:%S',
handlers=[file_handler, console_handler])
# rHandler
logging.info("starting WaterPlantPacForeCast")
return logging
二 和print的区别
print('a', 'b')
logging.info('a', 'b')
需要拆分为两行:
logging.info('a')
logging.info('b')