python - 登录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
而无需到处都有尝试/捕获?
解决方案
大多数时候我结合使用回溯库(标准)和一个非常大的 try-except 子句,比如 main() 函数。因此,任何未捕获的错误都可以在没有特殊处理的情况下记录下来。我希望能满足你的需要。例子:
import logging
import traceback
try:
main()
except:
logger.warning(traceback.format_exc())
推荐阅读
- variables - CamelCase 用于内部大写单词
- json - 如何过滤掉具有特定属性的元素(或保留没有该属性的元素)
- sql - HIVESQL 查询 Where 语句辅助
- linux - 使用 systemctl 获取 systemd 进程的正常运行时间或停机时间?
- r - 保留特定标签
- windows - 将传出 tcp 流量重定向到 Windows 中另一个 ip 的最简单方法
- java - 如何使用Querydsl构造涉及多个表的复杂谓词?
- python - 读取行之间没有分隔符的文件
- java - 如何使用数据集在 Spark Java 中爆炸数组列
- javascript - 使用 useEffect 和 async 反应 customHook