Python logging 模块:初学者到大师的进阶指南

王林
发布: 2024-03-08 08:20:13
转载
618人浏览过

python logging 模块:初学者到大师的进阶指南

初学者指南

设置日志记录器

logging 模块提供了一个方便的 api,用于设置日志记录器。日志记录器将负责处理日志消息并将其写入文件或控制台:

import logging

# 创建一个名为 "my_logger" 的日志记录器
logger = logging.getLogger("my_logger")

# 设置日志级别为 DEBUG,表示要记录所有级别的日志消息
logger.setLevel(logging.DEBUG)
登录后复制

记录日志消息

要记录日志消息,请使用日志记录器提供的 debug(), info(), warning(), error() 或 critical() 方法。每个方法对应一个不同的日志级别:

logger.debug("这是 debug 消息")
logger.info("这是 info 消息")
logger.warning("这是 warning 消息")
logger.error("这是 error 消息")
logger.critical("这是 critical 消息")
登录后复制

日志格式

默认情况下,logging 模块使用简单的日志格式,包括日志级别、时间戳和消息。您可以自定义日志格式以包含其他信息,例如函数名称、行号或进程 ID:

# 使用 %(asctime)s、%(levelname)s 和 %(message)s 占位符自定义日志格式
fORMatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")

# 将格式器添加到日志记录器
logger.addHandler(logging.StreamHandler())
logger.addHandler(logging.FileHandler("my_log.log"))
登录后复制

中级指南

日志层次结构和传播器

logging 模块支持日志层次结构,其中日志记录器可以具有父级和子级。父级记录器将记录子级记录器中的所有消息:

立即学习Python免费学习笔记(深入)”;

# 创建一个名为 "parent_logger" 的父级日志记录器
parent_logger = logging.getLogger("parent_logger")

# 创建一个名为 "child_logger" 的子级日志记录器
child_logger = logging.getLogger("parent_logger.child_logger")

# 设置子级日志记录器的日志级别为 INFO,表示仅记录 info 和更高级别的消息
child_logger.setLevel(logging.INFO)

# 父级日志记录器中的消息将传播到子级日志记录器
parent_logger.info("父级日志记录器消息")
child_logger.info("子级日志记录器消息")
登录后复制

日志过滤器

您可以使用日志过滤器来控制哪些日志消息被记录或传播。过滤器可以基于日志级别、消息内容或其他属性:

# 创建一个过滤器,仅允许记录 error 级别及以上的消息
filter = logging.Filter()
filter.filter = lambda record: record.levelno >= logging.ERROR

# 将过滤器添加到日志记录器
logger.addFilter(filter)
登录后复制

高级指南

日志轮转

当日志文件变得过大时,日志轮转可以自动管理和分割日志文件。您可以设置最大日志文件大小或保留一定数量的日志文件:

# 使用 RotatingFileHandler 设置日志轮转,最大日志文件大小为 10MB
handler = logging.handlers.RotatingFileHandler("my_log.log", maxBytes=10240000)

# 将处理程序添加到日志记录器
logger.addHandler(handler)
登录后复制

自定义日志句柄

logging 模块允许您创建自己的日志句柄,提供更大的灵活性。您可以使用 SocketHandler 将日志消息发送到远程服务器,或使用 TimedRotatingFileHandler 根据时间间隔而不是文件大小轮转日志文件:

# 创建一个自定义日志句柄,将日志消息发送到远程服务器
handler = logging.handlers.SocketHandler("localhost", 1234)

# 将处理程序添加到日志记录器
logger.addHandler(handler)
登录后复制

结论

python logging 模块是一个功能强大且灵活的工具,可以显着提高您程序的日志记录和调试能力。通过了解和使用本指南中介绍的技术,您将能够有效地管理日志、解决问题并确保您的程序稳定可靠地运行。

以上就是Python logging 模块:初学者到大师的进阶指南的详细内容,更多请关注php中文网其它相关文章!

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
相关标签:
来源:编程网网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号