Python学习 -- logging模块

这篇具有很好参考价值的文章主要介绍了Python学习 -- logging模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

logging 模块是 Python 中用于记录日志的标准库,它提供了丰富的功能,可以帮助开发者进行日志记录和管理。以下是关于logging模块的详细使用方式,包括日志级别、处理流程、Logger 类、Handler 类、Filter 类、Formatter 类以及模块中常用函数等内容。

1. 日志级别

logging 模块定义了以下几个日志级别,按照递增的重要性排列:
DEBUG: 最详细的日志信息,通常用于调试目的。
INFO: 用于确认程序正常运行。
WARNING: 表示可能存在问题,但程序仍然正常运行。
ERROR: 用于标识出现错误,程序可能无法正常运行。
CRITICAL: 表示严重的错误,可能导致程序崩溃。

2. 处理流程

创建一个 Logger 对象,用于记录日志。

创建一个或多个 Handler 对象,用于指定日志记录的输出目标(例如文件、控制台等)。

可选地创建一个或多个 Filter 对象,用于过滤需要记录的日志记录。

可选地创建一个 Formatter 对象,用于指定日志记录的格式。

3. Logger 类

Logger 类是主要的日志记录器,用于记录日志消息。

import logging
# 创建一个Logger对象
logger = logging.getLogger("my_logger")

4. Handler 类

Handler 类负责将日志消息发送到指定的输出目标。

# 创建一个文件处理器
file_handler = logging.FileHandler("my_log.log")
# 创建一个控制台处理器
console_handler = logging.StreamHandler()

5. Filter 类

Filter 类用于过滤特定的日志记录。

class MyFilter(logging.Filter):
    def filter(self, record):
        return "important" in record.getMessage()
logger.addFilter(MyFilter())

6. Formatter 类

Formatter 类用于指定日志记录的格式。

# 创建一个自定义格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 为处理器设置格式
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)

7. 常用函数

logger.setLevel(level)

设置日志记录器的最低日志级别,只有达到该级别的日志才会被记录。

logger.setLevel(logging.DEBUG)

logger.addHandler(handler)

为日志记录器添加处理器,指定日志的输出目标。

logger.addHandler(file_handler)
logger.addHandler(console_handler)
logger.debug(msg), logger.info(msg), logger.warning(msg), logger.error(msg), logger.critical(msg)

分别用于记录不同级别的日志消息。

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.")

完整示例

以下是一个完整的示例,演示如何使用 logging 模块进行日志记录:

import logging
# 创建一个Logger对象
logger = logging.getLogger("my_logger")
logger.setLevel(logging.DEBUG)
# 创建一个文件处理器
file_handler = logging.FileHandler("my_log.log")
# 创建一个控制台处理器
console_handler = logging.StreamHandler()
# 创建一个自定义格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)
# 添加处理器到Logger
logger.addHandler(file_handler)
logger.addHandler(console_handler)
# 创建一个自定义Filter,过滤带有"important"关键字的日志记录
class MyFilter(logging.Filter):
    def filter(self, record):
        return "important" in record.getMessage()
logger.addFilter(MyFilter())
# 记录不同级别的日志
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.")

这个示例演示了如何创建 Logger、Handler、Filter、Formatter 并使用它们来记录不同级别的日志消息。通过灵活地使用 logging 模块,您可以更好地管理和调试您的应用程序。

Python学习 -- logging模块,2023Python学习,python,学习,前端文章来源地址https://www.toymoban.com/news/detail-699890.html

到了这里,关于Python学习 -- logging模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python 常用内置模块之 logging(日志输出)

    Python logging 模块定义了为应用程序和库实现灵活的事件日志记录的函数和类,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket 等,甚至可以自定义实现具体的日志记录方式。 Logging 优点

    2024年02月05日
    浏览(45)
  • Python logging模块的基本使用、进阶使用详解

    在 python3 中,内置了 logging 模块,用于进行日志相关的处理。 这篇文章将总结 logging 模块的基本用法及进阶用法 1. 日志级别及对应函数 logging模块默认定义了6个日志级别: 日志优先级: CRIRICAL ERROR WARNING INFO DEBUG 当日志级别设置为某个级别时,则低于该级别的日志将不输出

    2024年01月25日
    浏览(46)
  • chatgpt赋能python:Python输出方法详解:从基础print()到高级logging模块

    在Python编程中,输出是一个必不可少的步骤。然而,Python提供了多种输出方法,如何选择最适合的方法呢?本文将详细介绍Python输出的不同方法,并给出实际应用场景的示例。 最基础的输出方法就是使用内置函数 print() 。它可以接收多个参数,并将它们以空格分隔输出到控制

    2024年02月08日
    浏览(52)
  • [python]使用标准库logging实现多进程安全的日志模块

    原本应用的日志是全部输出到os的stdout,也就是控制台输出。因其它团队要求也要保留日志文件,便于他们用其他工具统一采集,另一方面还要保留控制台输出,便于出问题的时候自己直接看pod日志。具体需求如下: 日志支持同时控制台输出和文件输出 控制台的输出级别可以

    2024年01月23日
    浏览(29)
  • Python logging.handlers模块,RotatingFileHandler、TimedRotatingFileHandler 处理器各参数详细介绍

    在python的 logging.handlers 模块中,提供了很多有用的日志处理程序对象,其中比较常用的有: RotatingFileHandler 、 TimedRotatingFileHandler 。这两个处理程序主要是用来对输出的日志文件进行切割。 RotatingFileHandler 是 Python 自带的日志处理器之一,用于将日志写入到指定的文件中,并控

    2024年02月09日
    浏览(37)
  • 【Python学习】Python学习15-模块

    目录 文章所属专区 Python学习 本章节主要说明Python的模块。Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。 su

    2024年01月16日
    浏览(27)
  • 10分钟快速上手LLM大模型Python前端开发(三)之显示模块(一)

    微信公众号:leetcode_algos_life,代码随想随记 小红书:412408155 CSDN:https://blog.csdn.net/woai8339?type=blog GitHub: https://github.com/riverind 抖音【暂未开始,计划开始】:tian72530 知乎【暂未开始,计划开始】:happy001 本系列主要应用于大模型前端展示,十分钟快速上手前端系列。 该文章

    2024年01月16日
    浏览(34)
  • Python模块学习:subprocess模块详解

    subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码。这个模块的目的在于替换几个旧的模块和方法,如: 1.subprocess模块中的常用函数 函数 描述 subprocess.run() Python 3.5中新增的函数。执行指定的命令

    2024年02月13日
    浏览(30)
  • 【零基础入门学习Python---Python函数和模块】

    🚀 Python 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验

    2024年02月11日
    浏览(37)
  • Python urllib模块学习

    HTTP 协议:一般指HTTP(超文本传输)协议。 HTTP是为Web浏览器和Web服务器之间的通信而设计的,基于TCP/IP通信协议嘞传递数据。 客户端请求消息 客户端发送一个HTTP请求到服务器的请求消息包括以下格式 请求行(request line) 请求头(header) 空行 请求数据 服务器相应消息 HTTP相应也由

    2024年02月22日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包