Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
社区首页 >专栏 >python-异常处理和错误调试-asyncio中的错误调试(二)

python-异常处理和错误调试-asyncio中的错误调试(二)

原创
作者头像
玖叁叁
发布于 2023-04-21 02:20:09
发布于 2023-04-21 02:20:09
1.2K00
代码可运行
举报
文章被收录于专栏:玖叁叁玖叁叁
运行总次数:0
代码可运行

使用日志系统

在 asyncio 中,我们还可以使用日志系统进行调试。日志系统可以将程序运行时的信息输出到指定的日志文件或者控制台中,从而方便我们查看程序运行时的状态。

例如,我们定义了一个异步函数 coro(),如下所示:

代码语言:javascript
代码运行次数:0
复制
import asyncio
import logging

async def coro():
    await asyncio.sleep(1)
    logging.error("除数不能为0")
    a = 1 / 0
    await asyncio.sleep(1)

async def main():
    await coro()

asyncio.run(main())

在上述代码中,我们使用 logging 模块输出了一个错误信息。logging 模块提供了多个日志级别,如 debug、info、warning、error 等等。在输出日志信息时,我们可以指定日志级别,从而控制输出信息的详细程度,例如,使用 logging.error() 输出的信息将会输出到控制台或者日志文件中,并且只有当日志级别设置为 error 时才会输出。

在使用日志系统进行调试时,我们可以将日志级别设置为 DEBUG,从而输出更为详细的信息。例如,我们可以将代码修改为如下所示:

代码语言:javascript
代码运行次数:0
复制
import asyncio
import logging

async def coro():
    await asyncio.sleep(1)
    logging.debug("进入 coro 函数")
    a = 1 / 0
    await asyncio.sleep(1)

async def main():
    logging.basicConfig(level=logging.DEBUG)
    await coro()

asyncio.run(main())

在上述代码中,我们使用 logging.basicConfig() 函数将日志级别设置为 DEBUG,从而输出更为详细的信息。当程序运行时,会在控制台输出以下信息:

代码语言:javascript
代码运行次数:0
复制
DEBUG:root:进入 coro 函数

通过输出的信息,我们可以知道程序在哪个函数中出现了错误,从而更方便地进行调试。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python-异常处理和错误调试-异步IO程序的调试方法(二)
日志系统是一种常用的调试工具,可以帮助我们记录程序运行状态,找到程序中的错误,并进行调试。在异步IO程序中,我们也可以使用日志系统进行调试。
玖叁叁
2023/04/21
6940
python-异常处理和错误调试-asyncio中的错误调试(三)
除了使用调试器和日志系统进行调试之外,asyncio 还提供了一些内置的调试工具。其中,最常用的调试工具是 asyncio 的调试模式。
玖叁叁
2023/04/21
1.5K0
python-异常处理和错误调试-异步IO程序的调试方法(三)
Python 中的 asyncio 模块提供了一些有用的 debug 工具,可以帮助我们更好地理解异步IO程序的运行状态,并找到程序中的错误。在本节中,我们将介绍 asyncio 的 debug 工具,并介绍如何使用这些工具进行调试。
玖叁叁
2023/04/21
1.6K0
python-异常处理和错误调试-asyncio中的错误调试(一)
在异步编程中,asyncio 是 Python 中的一种常用的异步 I/O 库。在使用 asyncio 编写程序时,由于异步任务之间存在依赖关系,因此错误调试是非常重要的。
玖叁叁
2023/04/21
1.9K0
python-异常处理和错误调试-协程中的异常处理(二)
在协程中,错误调试是指在程序出现错误时,如何查找和修复错误。通常情况下,协程中的错误调试可以通过以下几个步骤实现:
玖叁叁
2023/04/21
1.1K0
通过 asyncio 实现基于协程的并发编程
协程是在用户进程中,按照用户预先设定的执行流程进行上下文切换,从而在开销远小于多线程/多进程并发的条件下实现程序的并发执行。 asyncio,tornado 和 gevent 在 python 原有协程机制的基础上封装了更为易用的高层次 api,本文我们就来详细介绍 asyncio 包基于协程实现的异步 IO。
用户3147702
2022/06/27
5930
通过 asyncio 实现基于协程的并发编程
关于asyncio知识(二)
通过上一篇关于asyncio的整体介绍,看过之后基本对asyncio就有一个基本认识,如果是感兴趣的小伙伴相信也会尝试写一些小代码尝试用了,那么这篇文章会通过一个简单的爬虫程序,从简单到复杂,一点一点的改进程序以达到我们想要的效果.
coders
2019/05/25
1.3K0
Python异步IO操作,看这个就够了
异步 IO 是一种并发编程设计,Python3.4 开始,已经有专门的标准库 asyncio 来支持异步 IO 操作。你可能会说,我知道并发用多线程,并行用多进程,这里面的知识已经够我掌握的了,异步 IO 又是个什么鬼?本文将会回答该问题,从而使你更加牢固地掌握 Python 的异步 IO 操作方法。
somenzz
2020/11/25
2.8K0
Python异步IO操作,看这个就够了
Python开发之日志记录模块:logg
最近在开发一个应用软件,为方便调试和后期维护,在代码中添加了日志,用的是Python内置的logging模块,看了许多博主的博文,颇有所得。不得不说,有许多博主大牛总结得确实很好。似乎我再写关于logging的博文有些多余,但不写总结又总觉得没掌握。那就写写吧,也方便日后回顾。
py3study
2020/01/16
1.4K0
Python开发之日志记录模块:logg
python-异常处理和错误调试-异步IO程序的调试方法(一)
异步IO程序是一种高效的编程方式,但是由于其特殊的运行方式,调试起来也有其特殊的难点。
玖叁叁
2023/04/21
1.1K0
还在用print()查找错误?日志消息这顿排骨它不香嘛?
Hello!攒钱买生发水的大灰狼又来了,最近在最项目开发的时候呀,跟小伙伴聊到修Bug这件事。
灰小猿
2020/09/23
4320
还在用print()查找错误?日志消息这顿排骨它不香嘛?
Python logging模块怎么使用,你会了吗?
在开发和维护Python应用程序时,日志记录是一项非常重要的任务。Python提供了内置的logging模块,它可以帮助我们方便地记录应用程序的运行时信息、错误和调试信息。本文将介绍如何使用Python logging模块进行日志记录。
霍格沃兹测试开发Muller老师
2023/09/07
2200
python日志系统-logging
在之前测试运维试听课程中,芒果给大家介绍了python日志系统-logging的使用,这里我们来做个小总结。
TestOps
2022/04/07
3480
python--日志系统
通过log的分析,可以方便用户了解系统或软件、应用的运行情况;如果你的应用log足够丰富,也可以分析以往用户的操作行为、类型喜好、地域分布或其他更多信息;如果一个应用的log同时也分了多个级别,那么可以很轻易地分析得到该应用的健康状况,及时发现问题并快速定位、解决问题,补救损失。
languageX
2023/01/03
9620
【测试开发】python系列教程:logging日志模块
在我们正常的开发中,总能想要打印一些信息,或者打印日志,我们都是用的print,但是在小规模的程序开发中是可以来用的,也便于调试,但是对于大点的项目,我们想要保存执行过程中的日志,用print来打印来说就不能满足了。我们用loggin模块可以来记录,以排查程序在某一个时候崩溃的具体原因,以便及时定位Bug进行抢救。
雷子
2023/08/21
2250
【测试开发】python系列教程:logging日志模块
Python日志模块logging的使用
为什么只输出了 warning, error 和 critical 的结果,因为 logging 模块默认使用 warning 日志级别,就是只有 warning 及以上日志等级才会显示。
忆想不到的晖
2021/12/06
1K0
Python日志模块logging的使用
Python3-logging模块
因为工作需要用到关于日志的,最近一直都在看关于日志模块的东西,百度了很多文章,可惜都是看的让人一头雾水,最后运气不错,找到一篇很详细的文章。传送门:https://www.cnblogs.com/testdjt/p/7834856.html
润森
2019/10/24
7290
深入理解 Python 中的日志 logging 模块
日志记录是软件开发中的一个重要环节,它可以帮助我们监控程序运行过程中的状态、诊断问题以及分析性能。Python 中通常使用 logging 模块,让我们能够方便地记录日志信息。
Mirza Zhao
2023/11/17
4490
深入理解 Python 中的日志 logging 模块
#7 Python代码调试
Python已经学了这么久了,你现在已经长大了,该学会自己调试代码了!相信大家在编写程序过程中会遇到大量的错误信息,我也不例外的啦~遇到这些问题该怎么解决呢?使用最多的方法就是使用print打印中间变量了哇,关于这种方法怎么说呢~low!!!这一节将记录Python中一项很重要的技能:Debug(代码调试),Here We Go!
py3study
2020/01/16
5920
#7 Python代码调试
Python asyncio之协程学习总结
协程(Coroutine)一种电脑程序组件,该程序组件通过允许暂停和恢复任务,为非抢占式多任务生成子程序。协程也可以简单理解为协作的程序,通过协同多任务处理实现并发的函数的变种(一种可以支持中断的函数)。
授客
2023/05/29
9400
Python asyncio之协程学习总结
相关推荐
python-异常处理和错误调试-异步IO程序的调试方法(二)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验