python程序调试logging_Python日志的快速解决方案,pythonlogging

2020-10-29-22:20分CHZWE(公坚适白)原创发布

延后全部都是盗版

改编于Al Sweigart的《python编程快速上手——让繁琐的工作自动化》

logging模块速解

你调试程序时曾在代码中加入print()函数,以输出一些变量的值。不过在删除语句时容易误删其他有用的print(),所以,你需要学习使用日志模块

logging模块在Python的标准库内,所以可以直接导入,代码看起来像这样:

#!python3

import logging

logging模块需要你设置输出格式,如果你是新手,你不需要知道太多,在import下插入一段语句,代码看起来像这样:

#!python3

import logging

logging.basicConfig(level=logging.DEBUG,format="%(asctime)s-%(levelname)s-%(massage)s")

接下来,我们将用一个例子描述它:

我们要计算阶乘,7的阶乘是1×2×3×4×5×6×7

代码看起来像这样:

#!python3

import logging

logging.basicConfig(level=logging.DEBUG,format="%(asctime)s-%(levelname)s-%(masaage)s")

logging.debug("程序开始运行")

number=1

for i in range(8):

number*=i

logging.debug("i的值是"+str(i),"number的值

是"+str(number))

print(number)

logging.debug("程序运行结束")

随后我们可以从日志找到错误:

for循环默认乘了个0

随后我们把第8行改成了

for i in range(1,8)

程序输出和我们所需要的一样!

不要用print调试程序

你可能觉得用logging有一点不方便。你可能会想用print()来代替它

但是不要屈服于这些诱惑!

否则完成调试后,你需要做更多的工作以删除这些print,你还有可能一不小心删除

有用的print语句

日志级别

所谓的日志级别呢,就是程序不同的时间是有不同的分类的,从最不重要到最重要。

DEBUG logging.debug 几许不重要,只有找问题你才可能会关心。

INFO logging.info 记录程序运行一般事件。以确认程序一切正常。

WARNING logging.warning 可能的问题,它不会让程序崩溃,但是将来可能会。

ERROR longging.error 记录一般错误信息

CRITICAL longging.critical 记录程序运行遇到的严重错误

日志级别的好处在于你可以随自己的兴趣选择查看的类型。

你可以把开头给出的longging.basicConfig函数的level参数改成以上的,例如:

longging.basicConfig(level=longging.error....)

当然,你在之后不需要删除这些日志代码,因为你只需要禁用日志,它就不会占输出行。

longging.distical()输入级别,例如:longging.error

python不会再显示这个及更低基本的日志

如果加入longging.critical相当于不显示所有日志。

当然,在level参数前还可以加一个参数filename,直接讲日志写入文件(包括你已经禁用的日志,而不会占据输出框)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值