Python logging日志模块的核心用法与实操技巧

 更新时间:2026年03月13日 08:56:45   作者:独断万古他化  
logging 是 Python 标准库中的一个模块,它提供了灵活的日志记录功能,通过 logging,开发者可以方便地将日志信息输出到控制台、文件、网络等多种目标,本文给大家介绍了Python logging日志模块的核心用法与实操技巧,需要的朋友可以参考下

logging 日志介绍

logging 是 Python 标准库中的一个模块,它提供了灵活的日志记录功能。通过 logging,开发者可以方便地将日志信息输出到控制台、文件、网络等多种目标,同时支持不同级别的日志记录,以满足不同场景下的需求。

一、logging 使用示例

1.1 全局logging基础使用

import logging

logging.basicConfig(level=logging.INFO)

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')

1.2 自定义logger并输出到控制台

# 导入 logging 模块
import logging

logging.basicConfig(level=logging.INFO)

# 获取一个日志记录器对象,名称为当前模块的名称
logger = logging.getLogger(__name__)

# 设置日志记录器的级别为 DEBUG
# 这意味着所有级别为 DEBUG 及以上的日志都会被记录
logger.setLevel(logging.DEBUG)

if __name__ == "__main__":
    logger.debug('This is a debug message')
    logger.info('This is an info message')
    logger.warning('This is a warning message')
    logger.error('This is an error message')
    logger.critical('This is a critical message')

执行结果

This is a warning message
This is an error message
This is a critical message

1.3 自定义logger并输出到日志文件

# 导入 logging 模块
import logging

# 获取一个日志记录器对象,名称为当前模块的名称
logger = logging.getLogger(__name__)

# 设置日志记录器的级别为 DEBUG
# 这意味着所有级别为 DEBUG 及以上的日志都会被记录
logger.setLevel(logging.DEBUG)

# 创建一个 FileHandler 对象,指定日志文件的名称为 "test.log"
# 这个处理器会将日志信息写入到指定的文件中
handler = logging.FileHandler(filename="test.log")

# 将这个处理器添加到日志记录器中
# 这样,日志记录器就会使用这个处理器来处理日志信息
logger.addHandler(handler)

if __name__ == "__main__":
    logger.debug('This is a debug message')
    logger.info('This is an info message')
    logger.warning('This is a warning message')
    logger.error('This is an error message')
    logger.critical('This is a critical message')

执行结果(test.log文件内容)

This is a debug message
This is an info message
This is a warning message
This is an error message
This is a critical message

1.4 设置自定义日志格式

# 导入 logging 模块
import logging

# 获取一个日志记录器对象,名称为当前模块的名称
logger = logging.getLogger(__name__)

# 设置日志记录器的级别为 DEBUG
# 这意味着所有级别为 DEBUG 及以上的日志都会被记录
logger.setLevel(logging.DEBUG)

# 创建一个 FileHandler 对象,指定日志文件的名称为 "test.log"
# 这个处理器会将日志信息写入到指定的文件中
handler = logging.FileHandler(filename="test.log")

# 创建一个日志格式器对象
formatter = logging.Formatter(
    "%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d)] - %(message)s"
)

# 将格式器设置到处理器上
handler.setFormatter(formatter)

# 将这个处理器添加到日志记录器中
# 这样,日志记录器就会使用这个处理器来处理日志信息
logger.addHandler(handler)

if __name__ == "__main__":
    logger.debug('This is a debug message')
    logger.info('This is an info message')
    logger.warning('This is a warning message')
    logger.error('This is an error message')
    logger.critical('This is a critical message')

二、关键知识点说明

2.1 日志记录器获取

通过 logging.getLogger(__name__) 获取日志记录器对象,name 为当前模块的名称。使用模块名称作为日志记录器的名称有助于在大型项目中区分不同模块的日志。

2.2 日志级别规则

日志级别金字塔(优先级从低到高):DEBUG < INFO < WARNING < ERROR < CRITICAL

  • 日志记录器的级别通过 logger.setLevel(logging.XXX) 设置
  • 只有高于或等于设定级别的日志才会被处理和记录

2.3 日志处理器

  • FileHandler:用于将日志写入文件,通过 logging.FileHandler(filename="文件名") 创建
  • StreamHandler:用于将日志输出到控制台(示例中注释部分可启用)
  • 一个日志记录器可以添加多个处理器,实现日志多目标输出(如同时输出到控制台和文件)

2.4 日志格式占位符说明

格式占位符说明
%(asctime)s日志记录的时间戳,通常显示为日期和时间。
%(levelname)s日志级别(如 DEBUG、INFO、WARNING、ERROR、CRITICAL)。
%(name)s日志记录器的名称,通常为模块名称。
%(filename)s日志记录发生的文件名。
%(funcName)s日志记录发生的函数名。
%(lineno)d日志记录发生的行号。
%(message)s日志消息本身。

2.5 格式器与处理器绑定

通过 handler.setFormatter(formatter) 将格式器对象设置到处理器上,处理器会按照指定格式格式化日志信息后输出。

通过这种方式,可以控制日志信息的输出格式,可以包含如:时间戳、日志级别、文件名、函数名、行号等。

以上就是Python logging日志模块的核心用法与实操技巧的详细内容,更多关于Python logging日志模块的资料请关注脚本之家其它相关文章!

相关文章

  • Flask框架通过Flask_login实现用户登录功能示例

    Flask框架通过Flask_login实现用户登录功能示例

    这篇文章主要介绍了Flask框架通过Flask_login实现用户登录功能,结合实例形式较为详细的分析了flask框架使用Flask_login实现用户登陆功能的具体操作步骤、相关实现技巧与操作注意事项,需要的朋友可以参考下
    2018-07-07
  • Python+drawpad实现CPU监控小程序

    Python+drawpad实现CPU监控小程序

    这篇文章主要为大家详细介绍了如何利用Python+drawpad实现一个简单的CPU监控小程序,文中示例代码讲解详细,感兴趣的小伙伴可以尝试一下
    2022-08-08
  • Python pygame项目实战英雄动画特效实现

    Python pygame项目实战英雄动画特效实现

    这篇文章主要为大家介绍了Python pygame项目实战英雄动画特效实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Pycharm 创建 Django admin 用户名和密码的实例

    Pycharm 创建 Django admin 用户名和密码的实例

    今天小编就为大家分享一篇Pycharm 创建 Django admin 用户名和密码的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 使用apiDoc实现python接口文档编写

    使用apiDoc实现python接口文档编写

    今天小编就为大家分享一篇使用apiDoc实现python接口文档编写,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Django框架中render_to_response()函数的使用方法

    Django框架中render_to_response()函数的使用方法

    这篇文章主要介绍了Django框架中render_to_response()函数的使用方法,注意范例中该方法的参数的使用,需要的朋友可以参考下
    2015-07-07
  • Postman安装与使用详细教程 附postman离线安装包

    Postman安装与使用详细教程 附postman离线安装包

    这篇文章主要介绍了Postman安装与使用详细教程 附postman离线安装包,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Django2 连接MySQL及model测试实例分析

    Django2 连接MySQL及model测试实例分析

    这篇文章主要介绍了Django2 连接MySQL及model测试,结合实例形式分析了Django2框架使用pymysql库进行mysql数据库连接与model调用测试方法,需要的朋友可以参考下
    2019-12-12
  • python logging模块的使用总结

    python logging模块的使用总结

    这篇文章主要介绍了python logging模块使用总结以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。,需要的朋友可以参考下
    2019-07-07
  • Python如何利用IMAP实现邮箱客户端功能

    Python如何利用IMAP实现邮箱客户端功能

    IMAP是另一种读取电子邮件的协议,IMAP是读取邮件服务器的电子邮件与公布栏信息的方法,也就是说IMAP 允许客户端的邮件程序存取远程的信息,这篇文章主要给大家介绍了关于Python如何利用IMAP实现邮箱客户端功能的相关资料,需要的朋友可以参考下
    2021-09-09

最新评论