python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python logger包使用教程

python中logger包的详细使用教程(附实例代码)

作者:SunkingYang

Python logging模块是标准库日志工具,支持多级别、多目标、多格式日志管理,这篇文章主要介绍了python中logger包详细使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

Python 的 logging 模块是标准库中用于记录日志的核心工具,通过灵活配置可实现多级别、多目标、多格式的日志管理。以下是其核心用法及详细说明:

功能说明

一、Logger 的创建与基础配置

二、Handler 的配置与使用

Handler 负责将日志发送到不同目标(如文件、控制台),可同时添加多个 Handler 实现多路输出。

常用 Handler 类型

Handler功能示例
StreamHandler输出到控制台(默认 sys.stderrlogging.StreamHandler()
FileHandler输出到文件logging.FileHandler('app.log', mode='a')
RotatingFileHandler日志文件按大小回滚(避免文件过大)from logging.handlers import RotatingFileHandler
TimedRotatingFileHandler按时间回滚日志文件(如每天生成新文件)from logging.handlers import TimedRotatingFileHandler

示例:同时输出到文件和控制台

# 文件 Handler(按大小回滚)
from logging.handlers import RotatingFileHandler
file_handler = RotatingFileHandler(
    'app.log', maxBytes=1024*1024, backupCount=5  # 单个文件最大1MB,保留5个备份
)
file_handler.setLevel(logging.INFO)

# 控制台 Handler
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)

# 添加 Handler 到 Logger
logger.addHandler(file_handler)
logger.addHandler(console_handler)

三、Formatter 自定义日志格式

通过 Formatter 可定义日志输出的格式,支持占位符如 %(asctime)s(时间)、%(levelname)s(级别)、%(message)s(消息)等。

formatter = logging.Formatter(
    '%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S'  # 自定义时间格式
)
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)

四、记录不同级别的日志

通过 Logger 对象调用对应级别的方法记录日志:

logger.debug('调试信息,用于开发阶段追踪细节')    # 仅当 Logger 级别 ≤ DEBUG 时输出
logger.info('常规信息,如服务启动')              
logger.warning('潜在问题警告,如参数缺失')        
logger.error('程序错误,但应用仍可运行')          
logger.critical('严重错误,可能导致程序崩溃')     

五、高级配置与最佳实践

六、常见问题与调试

以下是 Python 中 logging 模块的详细使用教程,涵盖基础配置、高级用法及最佳实践,结合多篇权威资料整理而成:

使用方法

一、基础配置与快速使用

二、自定义 Logger 对象

三、高级用法

四、最佳实践与注意事项

五、实际应用场景示例

网络请求监控

import requests

def fetch_data(url):
    try:
        response = requests.get(url, timeout=5)
        response.raise_for_status()
        logger.info(f'成功获取 {url} 数据')
        return response.json()
    except requests.RequestException as e:
        logger.error(f'请求失败: {url} - {str(e)}')
        return None

通过合理配置 Logger、Handler 和 Formatter,可以构建灵活高效的日志系统。更多高级功能(如远程日志、邮件通知)可参考 Python 官方文档

总结

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

您可能感兴趣的文章:
阅读全文