Python 方法添加打印执行日志

在Python编程中,经常需要在代码中添加日志以帮助调试和追踪程序的执行流程。打印执行日志是一种常见的调试方法,它可以显示程序运行过程中的关键信息,如变量值、函数调用、异常信息等。本文将介绍如何使用Python的内置logging模块来添加打印执行日志,并给出一些常用的技巧和示例。

什么是日志?

日志是一种记录程序运行过程中关键信息的方法,它可以帮助开发人员追踪程序的执行流程、排查问题和分析性能瓶颈。与直接使用print语句相比,日志具有以下优点:

  • 可以根据不同的需求选择输出级别,从而控制日志的详细程度。
  • 可以将日志输出到不同的目标,如控制台、文件、网络等。
  • 可以通过配置文件或代码动态地调整日志设置,而不需要修改源码。
  • 可以对日志进行格式化,使其更易读、美观。

使用logging模块

Python的内置logging模块提供了丰富的功能来管理和记录日志。它可以满足大部分的日志需求,并且易于使用。下面是一个简单的示例,演示了如何使用logging模块来添加打印执行日志。

先导入logging模块,并进行基本的配置:

import logging

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
  • basicConfig函数用来配置日志的基本设置,包括输出级别和格式等。上述代码中,我们将日志的输出级别设置为INFO,即只输出INFO级别及以上的日志。并且,指定了日志的格式为%(asctime)s - %(levelname)s - %(message)s,它包含了日期时间、日志级别和消息内容。
  • level参数用来设置日志的输出级别,常用的级别有DEBUGINFOWARNINGERRORCRITICAL。级别越低,输出的日志越详细。
  • format参数用来设置日志的格式,可以使用预定义的格式字符串,也可以自定义格式。

接下来,我们可以在代码中使用logging模块来记录日志:

def foo():
    logging.info('Entering foo()')
    # do something
    logging.debug('Debug message')
    logging.warning('Warning message')
    logging.error('Error message')
    logging.critical('Critical message')
  • logging.info函数用来记录INFO级别的日志。
  • logging.debug函数用来记录DEBUG级别的日志。
  • logging.warning函数用来记录WARNING级别的日志。
  • logging.error函数用来记录ERROR级别的日志。
  • logging.critical函数用来记录CRITICAL级别的日志。

在上述示例中,我们在foo函数的不同位置记录了不同级别的日志。通过控制日志的输出级别,我们可以灵活地控制日志的详细程度。

最后,我们可以运行程序来查看日志的输出:

if __name__ == '__main__':
    logging.info('Start')
    foo()
    logging.info('End')

上述代码中,我们在程序开始和结束的地方分别记录了INFO级别的日志。运行程序后,日志将被输出到控制台。

更多关于logging的使用技巧

除了基本的使用方法外,logging模块还提供了许多其他的功能和技巧,下面是一些常用的技巧:

  • 使用不同的输出目标:logging模块可以将日志输出到不同的目标,如控制台、文件、网络等。可以通过配置文件或代码来指定输出目标。
  • 动态地调整日志设置:可以通过配置文件或代码动态地调整日志的设置,而不需要修改源码。这样可以在不同的环境中使用不同的日志设置,以方便调试和排查问题。
  • 对日志进行格式