先定義一個函數。定義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)