不想手动再配置logging?那可以试试loguru( 四 )
import logging.handlersimport osimport sysfrom loguru import loggerclass InterceptHandler(logging.Handler):def emit(self, record):try:level = logger.level(record.levelname).nameexcept ValueError:level = record.levelnoframe, depth = logging.currentframe(), 2while frame.f_code.co_filename == logging.__file__:frame = frame.f_backdepth += 1logger.opt(depth=depth, exception=record.exc_info).log(level, record.getMessage())logging.basicConfig(handlers=[InterceptHandler()], level=0)def func(a, b):return a / bdef nested(c):try:func(5, c)except ZeroDivisionError:logging.exception("What?!")if __name__ == "__main__":nested(0)
最后结果同之前的异常追溯一致 。 而我们只需要在配置后直接调用 logging 的相关方法即可 , 减少了迁移和重写的成本 。
最后本文介绍了关于 loguru 的常用方法 , 从对比例子上来看 , 相比于复杂的 logging 配置来说 , 使用 loguru 库无疑还是很香的 , 毕竟别人已经为我们一些日常的通用性需求提供了封装好的解决方案 , 无论是在学习还是在使用的成本上 , 无疑还是比较小的 。
由于篇幅有限 , loguru 的其他配置部分没有进一步展开 , 如果看完本文的你对这个库感兴趣并打算投入到实际的开发和生产中使用 , 那么建议你还是阅读一下其官方文档 , 有必要的话可以浏览一下源码 。
不过 loguru 的通用配置不一定满足每个人的需要 , 对于那些动手能力强或水平较高的朋友还能进一步根据个人需求或业务需求进行二次封装 , 或许也能较为贴合实际情况 。
【不想手动再配置logging?那可以试试loguru】作者:100gle , 练习时长不到两年的非正经文科生一枚 , 喜欢敲代码、写写文章、捣鼓捣鼓各种新事物;现从事有关大数据分析与挖掘的相关工作 。
推荐阅读
- 目前配置全性价比高的手机,我只推荐五款,闭着眼买都不会错
- Git服务器配置错误导致日产汽车源码在网上泄露
- 荣耀V40正式得到确认!参数配置也基本确定!售价或将是惊喜
- 三星竟为Galaxy S21系列提供900多种颜色配置
- 红米k40pro和荣耀30区别哪个好 不同点对比参数配置谁好
- 2021年换手机哪个配置最重要,CPU只能排第三位
- 玩转光追大作最低需要什么配置?快来看小狮子的推荐
- 小米11和红米k30pro哪个好性价比高 参数配置对比区别
- 华为nova8与小米10对比哪个好 参数配置区别性能评测
- 三星Galaxy M02s将于1月7日发布!硬件配置很平常