python logging 日志速解

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,直接讲日志写入文件(包括你已经禁用的日志,而不会占据输出框)

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页