先定义一个函数。定义handler 将日志写入文件(file)和控制台(console)
import logging
def set_logger(log_file_path, logname = None):
logger = logging.getLogger() #创建logger
logger.setLevel(logging.INFO) #log等级总开关
formatter = logging.Formatter('%(asctime)s:%(levelname)s: %(message)s') #handler输出格式
if not logger.handlers:
# to file
file_handler = logging.FileHandler(log_file_path, mode='w')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler) #log添加到handler
# to console
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
logger.addHandler(stream_handler)
使用:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument()
opt = parser.parse_args()
set_logger('file_path/aaa.log')
logger = logging.getLogger()
#载入超参数等
opt_args = vars(opt)
for k in opt_args.keys():
logger.info('{0}: {1}'.format(k, opt_args[k]))
#载入模型结构
logger.info(model)