首页 > 解决方案 > 登录python时包含stderr和stdout

问题描述

具有以下日志记录:

log_name = pd.datetime.now().date().strftime(format="%Y-%m-%d")+".log" #Current day
log_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))+"/logs/" #Path
logging.basicConfig(filename=log_path+log_name,filemode="a",level = logging.INFO)

有没有办法捕获“未知”异常(例如pd.to_sql由于列名中的拼写错误而导致的错误)并将它们写入指定的同一个记录器文件,logging.basicConfig 而无需到处都有尝试/捕获?

标签: pythonerror-logging

解决方案


大多数时候我结合使用回溯库(标准)和一个非常大的 try-except 子句,比如 main() 函数。因此,任何未捕获的错误都可以在没有特殊处理的情况下记录下来。我希望能满足你的需要。例子:

import logging
import traceback

try:
    main()
except:
    logger.warning(traceback.format_exc())

推荐阅读