python——loguru第三方日志管理模块

本文介绍了Loguru,一个易于使用的Python日志管理库,包括日志等级设置、保存策略(如大小、时间分割、压缩和清理)、过滤功能以及异常捕捉。

loguru介绍

loguru是第三方库,拿来即用,不用太多的配置
安装:pip install loguru

日志等级

from loguru import logger

logger.debug('这是一条调试消息!')
logger.info('这是一条普通消息!')
logger.warning('这是一条警告消息!')
logger.error('这是一条错误消息!')
logger.critical('这是一条严重错误消息!')
logger.success('这是一条成功调用!')

# 记录报错信息,包含堆栈
logger.exception('这里发生了某些错误!')

在这里插入图片描述

关闭控制台输出
logger.remove(handler_id=None)

日志保存

在这里插入图片描述

# 日志保存
logger.add("logtest.log")
logger.add(logFile, rotation='200KB', compression='zip', retention="72h")
- rotation:
  日志分割方式: 可以按照日志大小或者时间分割, 比如rotation='200KB',200k一个文件;rotation='1 week',一周一个文件,rotation="12:00" 每天12:00分割文件。"100 MB", "0.5 GB", "1 month 2 weeks", "4 days", "10h", "monthly", "18:00", "sunday", "w0", "monday at 12:00"
- compression
  分割后的文件是否进行压缩的格式, compression="zip"zip方式压缩."gz""bz2""xz""lzma""tar""tar.gz""tar.bz2""tar.xz""zip"
- retention
  日志清理: 多少天清理一次日志."1 week",  "3 days", "2 months"
- enqueue
  处理器是否使用队列进行异步处理
- format
  日志格式

日志过滤

loguru还支持日志过滤功能,可以通过logger.add()函数的filter参数来添加过滤器。例如,我们可以添加一个过滤器来只输出级别为INFO或更高级别的日志信息,如下所示:

from loguru import logger

# 添加输出到终端的处理器,并添加日志过滤器
logger.add(
    handler=sys.stdout, 
    format="<green>{time}</green> <level>{message}</level>", 
    enqueue=True,
    filter=lambda record: record["level"].no >= 20
)

# 使用默认配置创建一个日志记录器对象
logger = logger.opt()
logger.info('hello, world!')
logger.debug('this is a debug log')

处理异常

loguru还支持捕获和记录异常信息,可以通过logger.catch()方法来捕获异常并记录异常信息。例如,我们可以在一个函数中添加logger.catch()来自动记录异常信息,如下所示:

from loguru import logger


# 定义一个会抛出异常的函数
def foo():
    a = 1 / 0


# 使用logger.catch()自动记录异常信息
@logger.catch()
def bar():
    foo()


# 调用bar()函数
bar()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值