使用Python的logging模块实现日志实时打印到控制台和输出到文件

作者:谁偷走了我的奶酪2024.01.17 23:39浏览量:12

简介:介绍如何使用Python的logging模块将日志实时打印到控制台,并将日志输出到文件。通过配置logging模块,可以实现多种级别的日志输出,以便更好地了解程序运行情况。

Python的logging模块是一个功能强大的日志记录系统,它可以用于记录程序运行期间的各类信息,如调试信息、警告信息和错误信息等。通过配置logging模块,可以将日志实时打印到控制台,并将日志输出到文件,方便后续查看和分析。
下面是一个简单的示例,演示如何使用logging模块将日志实时打印到控制台,并将日志输出到文件:

  1. import logging
  2. # 配置logging模块
  3. logging.basicConfig(level=logging.INFO,
  4. format='%(asctime)s %(levelname)s %(message)s',
  5. filename='app.log', # 日志文件名
  6. filemode='w') # 打开模式,'w'表示写入模式
  7. # 定义一个Logger对象
  8. logger = logging.getLogger()
  9. # 在控制台实时打印日志
  10. console = logging.StreamHandler()
  11. console.setLevel(logging.INFO)
  12. formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
  13. console.setFormatter(formatter)
  14. logger.addHandler(console)
  15. # 记录一些日志信息
  16. logger.info('This is an info message.')
  17. logger.warning('This is a warning message.')
  18. logger.error('This is an error message.')

在上面的代码中,我们首先使用basicConfig()方法配置了logging模块。该方法接受多个参数,其中level参数指定了最低的日志级别(即记录哪些级别的日志),format参数指定了日志的格式,filename参数指定了日志文件名,filemode参数指定了打开文件的模式。在本例中,我们将最低的日志级别设置为INFO级别,将日志格式设置为包含时间、日志级别和消息的格式,将日志文件名设置为“app.log”,并将打开模式设置为写入模式。
接下来,我们定义了一个Logger对象,并创建了一个StreamHandler对象来处理控制台上的日志输出。我们将StreamHandler的级别设置为INFO级别,并为其指定了格式化器。然后,我们将该Handler添加到了Logger对象中。
最后,我们使用Logger对象的info()warning()error()方法记录了一些日志信息。这些方法将相应的日志信息输出到控制台和日志文件中。在控制台中,可以看到实时打印的日志信息;在指定的日志文件中,也可以查看这些日志信息。
通过配置logging模块和Logger对象,我们可以轻松地将日志信息输出到控制台和文件。在实际应用中,我们可以根据需要调整日志级别、格式和输出目标等参数,以便更好地了解程序运行情况。