如何优雅地调试你的python程序之logging库使用

写在开始:由于在学校没有编程规范要求,从而养成了使用print直接打屏的恶习。

1. python的日志记录工具logging

1.1 为什么需要日志记录

日志记录是一种跟踪某些软件运行时发生的事件的方法。该软件的开发人员将日志记录调用添加到其代码中,以指示已发生某些事件。事件由描述性消息描述,该消息可以可选地包含可变数据(即,对于事件的每次出现可能不同的数据)。事件也具有开发人员对事件的重要性; 重要性也可以称为水平 或严重程度

1.2 为什么使用python自带的日志记录工具

使用标准库模块提供的日志记录API的主要好处是所有Python模块都可以参与日志记录,因此您的应用程序日志可以包含您自己的消息,这些消息与来自第三方模块的消息集成在一起。

1.3 何时使用哪种日志

Python 标准库 logging 用作记录日志,默认分为六种日志级别(括号为级别对应的数值)分别对应于不同的日志的重要程度:

NOTSET(0)

DEBUG(10)

INFO(20)

WARNING(30)

ERROR(40)

CRITICAL(50)

我们自定义日志级别时注意不要和默认的日志级别数值相同,logging 执行时输出大于等于设置的日志级别的日志信息,如设置日志级别是 INFO,则 INFO、WARNING、ERROR、CRITICAL 级别的日志都会输出。默认级别为WARNING,这意味着将仅跟踪此级别及更高级别的事件,除非日志包已配置为执行其他操作。

要确定何时使用日志记录,请参阅下表,其中列出了针对一组常见任务中的每个任务的最佳工具。(双语对照,极致阅读体验)

日志记录功能以它们用于跟踪的事件的级别或严重性命名。标准水平及其适用性如下所述(按严重程度递增顺序):

2. 如何记录日志

两种方法:

1. 打印到控制台。

import logging
logging.warning('Watch out!')  # will print a message to the console
logging.info('I told you so')  # will not print anything

因为默认日志级别为warning所以下面info的日志不会打印在屏幕上

2.将它们写入磁盘文件。

import logging
logging.basicConfig(filename='example.log',level=logging.DEBUG)
logging.debug('This message should go to the log file')
logging.info('So should this')
logging.warning('And this, too')

上面的代码会在文件路径上生成一个example.log文件,现在,如果我们打开文件并查看我们的内容,我们应该找到日志消息:

DEBUG:root:This message should go to the log file
INFO:root:So should this
WARNING:root:And this, too

此示例还说明了如何设置作为跟踪阈值的日志记录级别。在这种情况下,因为我们将阈值设置为 DEBUG,所以打印了所有消息。注意:logging.basicConfig(filename='example.log',level=logging.DEBUG)此行应在所有的日志前

如果多次运行上述脚本,则连续运行的消息

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的logging是一个非常方便的日志记录工具,可以记录程序执行过程中的各种信息,比如调试信息、错误信息等。使用logging可以让我们更好地了解程序的运行状态,并且便于排查问题。 下面是一个简单的示例,演示如何使用logging: ```python import logging # 配置日志记录器 logging.basicConfig(level=logging.DEBUG, filename='example.log', filemode='w') # 记录日志信息 logging.debug('This is a debug message') logging.info('This is an info message') logging.warning('This is a warning message') logging.error('This is an error message') logging.critical('This is a critical message') ``` 上面的代码中,首先我们配置了一个日志记录器,并将日志记录到名为example.log的文件中。然后我们依次记录了debug、info、warning、error和critical五种不同级别的日志信息。 在运行程序后,我们可以在example.log文件中看到以下内容: ``` DEBUG:root:This is a debug message INFO:root:This is an info message WARNING:root:This is a warning message ERROR:root:This is an error message CRITICAL:root:This is a critical message ``` 其中每一行都包含了日志级别、记录器名称和日志信息。 除了上面的基本用法外,logging还有很多高级用法,比如可以设置日志输出格式、添加不同的处理器、对不同的日志级别分别采取不同的处理方式等等。更多的用法和示例可以参考官方文档:https://docs.python.org/3/library/logging.html

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值