我们在具体实施某个工程时,可能会遇到未知的错误需要兜底,需要捕获异常的同时显示具体错误,直接上代码。
import logging
import traceback
def get_logger(file_path,logging_level):
logger=logging.getLogger(__name__)
logger.setLevel(level=logging.INFO)
hander=logging.FileHandler(file_path)
hander.setLevel(logging.INFO)
formatter=logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
hander.setFormatter(formatter)
logger.addHandler(hander)
return logger
logger=get_logger('./log.txt',logging.INFO)
def predicted(features):
try:
result=predictor(features)
except Exception as e:
logger.info('model predictor may be fail')
logger.error('model error %s' % traceback.format_exc()) #具体的错误会捕获
if __main__=='__name__':
predicted(features)
可以在log.txt中查看具体error