Discuz! BBS

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 35|回复: 0

Python logging 详解

[复制链接]

271

主题

393

帖子

2538

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2538
发表于 5 天前 | 显示全部楼层 |阅读模式
logging 库使用说明
1. logging 库简介
logging 是 Python 标准库中的一个模块,用于记录日志信息。它提供了一套灵活的日志记录系统,可以帮助开发者记录程序运行时的各种信息,如调试信息、错误信息等。

2. 基本使用步骤
2.1 导入 logging 模块
首先,需要在代码顶部导入 logging 模块:

Python
采纳
复制
新建文件
import logging
2.2 配置 logging
在记录日志之前,通常需要配置 logging,包括设置日志级别、日志格式和日志输出位置等。

Python
采纳
复制
新建文件
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
                    datefmt='%Y-%m-%d %H:%M:%S')
level 参数指定了日志级别,低于该级别的日志信息将被忽略。常见的日志级别有 DEBUG、INFO、WARNING、ERROR 和 CRITICAL。

format 参数指定了日志信息的格式。

datefmt 参数指定了日期和时间的格式。

2.3 记录日志
配置完成后,就可以使用 logging 模块提供的函数来记录日志了。这些函数包括 debug()、info()、warning()、error() 和 critical(),分别对应不同的日志级别。

Python
采纳
复制
新建文件
logging.debug('这是一个调试信息')
logging.info('这是一个普通信息')
logging.warning('这是一个警告信息')
logging.error('这是一个错误信息')
logging.critical('这是一个严重错误信息')
3. 高级功能
3.1 日志记录器(Logger)
logging 模块允许创建多个日志记录器(Logger),每个记录器都有自己的日志级别和处理器(Handler)。

Python
采纳
复制
新建文件
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)
3.2 处理器(Handler)
处理器负责将日志信息发送到指定的目的地,如控制台、文件等。

Python
采纳
复制
新建文件
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)

file_handler = logging.FileHandler('my_log.log')
file_handler.setLevel(logging.ERROR)
3.3 格式器(Formatter)
格式器用于定义日志信息的格式。

Python
采纳
复制
新建文件
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)
3.4 将处理器添加到记录器
最后,将处理器添加到记录器中,以便记录器能够将日志信息发送到这些处理器。

Python
采纳
复制
新建文件
logger.addHandler(console_handler)
logger.addHandler(file_handler)
3.5 使用记录器记录日志
现在,可以使用配置好的记录器来记录日志了。

Python
采纳
复制
新建文件
logger.debug('这是一个调试信息')
logger.info('这是一个普通信息')
logger.warning('这是一个警告信息')
logger.error('这是一个错误信息')
logger.critical('这是一个严重错误信息')
4. 示例代码
下面是一个完整的示例代码,展示了如何使用 logging 模块进行日志记录:

Python
采纳
复制
新建文件
import logging

# 创建日志记录器
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)

# 创建控制台处理器
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)

# 创建文件处理器
file_handler = logging.FileHandler('my_log.log')
file_handler.setLevel(logging.ERROR)

# 创建格式器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 将格式器添加到处理器
console_handler.setFormatter(formatter)
file_handler.setFormatter(formatter)

# 将处理器添加到记录器
logger.addHandler(console_handler)
logger.addHandler(file_handler)

# 记录日志
logger.debug('这是一个调试信息')
logger.info('这是一个普通信息')
logger.warning('这是一个警告信息')
logger.error('这是一个错误信息')
logger.critical('这是一个严重错误信息')
通过上述步骤,您可以灵活地使用 logging 模块来记录和管理日志信息。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-4-29 08:22 , Processed in 0.020491 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表