Python中logger模块的使用场景分析

 更新时间:2023年06月07日 11:44:14   作者:思念殇千寻  
logger是python的内置模块,用以输出代码运行过程中的运行情况,极大的方便了我们的debug过程,本文通过实例代码给大家介绍了Python中logger模块的使用教程,需要的朋友可以参考下

logging模块简介

logging模块是Python内置的日志模块,用来生成程序的日志。一条日志对应一个事件的发生,一个事件一般包括:事件发生时间、事件发生位置、事件内容、事件严重程度-日志级别。(还可以包括进程ID、进程名称、线程ID、线程名称等)

logging模块的组成

1.日志级别:日志分为五个等级,从低到高分别是:DEBUG、INFO、WANGING、ERROR、CRITICAL

  • DEBUG:最详细的信息,通常定位问题的时候用
  • INFO:确认一切按照预期运行,详细程度仅次于DEBUG
  • WARNING:一些意想不到的问题发生了,或者不久的将来将要发生问题,比如磁盘空间小,软件还能正常运行。
  • ERROR:很严重的问题,软件没能正确执行某些功能。
  • CRITICAL:一个严重的错误,程序本身无法继续运行了。

当你的程序指定了一个日志级别后,程序会记录所有日志级别大于等于指定级别的log。比如指定的级别是WARNING,那么记录的将是WARNING、ERROR、CRITICAL。至于如何设置指定日志级别,将在后面说到。

2.logging的4个组件:

  • logger(日志器):日志类,通过这个类提供的API来记录日志。
  • handler(处理器):对日志信息处理,可以将日志发送到不同的目标域中。
  • filter(过滤器):对日志信息进行过滤。
  • formatter(格式器):日志的格式化

logger模块的使用

  logger是python的内置模块,用以输出代码运行过程中的运行情况,极大的方便了我们的debug过程。参考资料中列出了使用logger相比于print优越的地方:

  1. 使用print很难和代码的正常输出区分开

  2. 使用print没有办法一次性失能或移除所有的debug语句

  3. 使用print不能生成一个统一可读性好的的logger日志文件

  一个最简单的使用场景,首先用下面的代码import logging包,然后将logger等级设置为DEBUG:

import logging
logging.basicConfig(level=logging.DEBUG)

  然后在代码中需要输出debug语句的地方将print替换成logging:

logging.debug("This is for debug.")

  实际上,上面的这种用法直接但并不标准,标准的做法是定义一个logger,这样的话输入logger日志的时候就会显示定义logger的名字,更容易阅读:

logger1 = logging.getLogger("module_1")
logger2 = logging.getLogger("module_2")
logger1.debug("Module 1 debugger")
logger2.debug("Module 2 debugger")

  如果想把logging语句输出到文件,只需要在basicConfig部分再添加一个filename参数,这样结果就会输出到日志文件中:

logging.basicConfig(filename="test.log", level=logging.DEBUG)

  基本的用法就是这些,实际上logging显然不仅只有debug而是还有其他非常多的等级,如下表所示:

   默认的等级是30,调成10就会输出所有大于等于10的了。

  参考模块:

  https://www.digitalocean.com/community/tutorials/how-to-use-logging-in-python-3

到此这篇关于Python中logger模块的使用教程的文章就介绍到这了,更多相关Python logger模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python数字图像处理数据类型及颜色空间转换

    python数字图像处理数据类型及颜色空间转换

    这篇文章主要为大家介绍了python数字图像处理数据类型及颜色空间转换示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法

    Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法

    这篇文章主要介绍了Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法,简单描述了最长公共子序列问题并结合实例形式分析了Python基于回溯法子集树模板获取最长公共子序列的操作步骤与相关注意事项,需要的朋友可以参考下
    2017-09-09
  • Python中请使用isinstance()判断变量类型

    Python中请使用isinstance()判断变量类型

    这篇文章主要介绍了Python中请使用isinstance()判断变量类型,本文先是给出了isinstance函数判断变量类型的例子,并对isinstance 和 type的区别做了讲解,需要的朋友可以参考下
    2014-08-08
  • python格式化输出format()函数常见用法和格式选项

    python格式化输出format()函数常见用法和格式选项

    这篇文章主要介绍了python格式化输出format()函数常见用法和格式选项的相关资料,format方法是一种强大的字符串格式化工具,它允许你将变量或表达式插入到字符串中,并根据需要进行格式化,需要的朋友可以参考下
    2025-03-03
  • 深入了解Python的异常处理机制

    深入了解Python的异常处理机制

    这篇文章主要为大家介绍了Python的异常处理机制,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • opencv检测动态物体的实现

    opencv检测动态物体的实现

    本文主要介绍了opencv检测动态物体的实现,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • PyQt5使用mimeData实现拖拽事件教程示例解析下

    PyQt5使用mimeData实现拖拽事件教程示例解析下

    这篇文章主要为大家介绍了PyQt5使用mimeData实现拖拽事件的教程示例解析,系列文章详见文中跳转链接,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • Python多线程threading模块用法实例分析

    Python多线程threading模块用法实例分析

    这篇文章主要介绍了Python多线程threading模块用法,结合实例形式分析了Python多线程threading模块原理、功能、常见应用及相关操作注意事项,需要的朋友可以参考下
    2019-05-05
  • Python调整PDF文档页边距的方法小结

    Python调整PDF文档页边距的方法小结

    PDF 文档中的边距是指环绕每页内容的空白区域,充当文本或图像与页面边缘之间的缓冲区,本文将介绍如何使用 Spire.PDF for Python 修改 PDF 文档的页边距,为不同使用场景定制合适的文档布局,需要的朋友可以参考下
    2024-05-05
  • Django基于客户端下载文件实现方法

    Django基于客户端下载文件实现方法

    这篇文章主要介绍了Django基于客户端下载文件实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论