Python的Loguru模块

Python的Loguru模块

1.Loguru模块的基本概念

Python logging模块定义了为应用程序和库实现灵活的事件日志记录的函数和类。程序开发过程中,很多程序都有记录日志的需求,并且日志包含的信息有正常的程序访问日志还可能有错误、告警等信息输出,Python的logging模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志记录提供了一组便利功能,用于简单的日志记录用法。

使用Python Logging模块的主要好处是所有的Pyhon模块都可以参与日志记录,logging模块提供了大量具有灵活性的功能。

为什么要使用loguru?

简单且方便的帮助我们输出需要的日志信息

使用 Python 来写程序或者脚本的话,常常遇到的问题就是需要对日志进行删除.一方面可以帮助我们在程序出问题的时候排除问题,二来可以帮助我们记录需要关注的信息
但是,使用自带自带的 logging 模块的话,则需要我们进行不同的初始化等相关工作。对应不熟悉该模块的同学来说,还是有些费劲的,比如需要配置 Handler/Formatter 等。 随着业务的复杂度提升, 对日志收集有着更高的要求, 例如: 日志分类, 文件存储, 异步写入, 自定义类型等等

loguru 是一个 Python 简易且强大的第三方日志记录库,该库旨在通过添加一系列有用的功能来解决标准记录器的注意事项,从而减少 Python 日志记录的痛苦

2.Loguru模块的安装与特性

2.1 安装

[root@localhost ~]# pip3 install loguru # 安装模块
[root@localhost ~]# pip3 show loguru # 查看模块相关信息

在这里插入图片描述

2.2 功能特性

  • 开箱即用,无需准备
  • 无需初始化,导入函数即可使用
  • 更容易的文件日志记录与转存/保留/压缩方式
  • 更优雅的字符串格式化输出
  • 可以在线程或主线程中捕获异常
  • 可以设置不同级别的日志记录样式
  • 支持异步,且线程和多进程安全
  • 支持惰性计算
  • 适用于脚本和库
  • 完全兼容标准日志记录
  • 更好的日期时间处理

3.Loguru模块的功能详解

1.开箱即用

# ======================
# -*-coding: Utf-8 -*-
# ======================
from loguru import logger

logger.debug('debug log')

上面的日志记录语句,默认向stderr(控制台)打印了一条输出语句,输出结果如下所示

在这里插入图片描述

​可以看出,loguru默认配置了一套日志输出格式,有时间、级别、模块名、行号以及日志信息,不需要手动创建 logger,直接使用即可,另外其输出还是彩色的,看起来会更加友好。所以我们不需要提前配置什么,直接用就可以

2.定义日志输出时的行为

​要达到logging中的Handler(日志输出地)、Formattetr(日志输出格式)、Filter(过滤输出的日志数据的效果,以及定义输出日志级别等等,全都可以在logger.add()这一个函数中完成

# ======================
# -*-coding: Utf-8 -*-
# ======================
from loguru import logger
import os
# 当前文件的目录路径
dir_path = os.path.abspath(os.path.dirname(__file__))
# 日志路径
log_file_path = os.path.join(dir_path,'loguru.log')
# 配置日志输出到文件,输出最低等级为info,格式自定义
logger.add(log_file_path,format="{time} {level} {message}",level="INFO")
logger.debug('debug msg')
logger.info('info msg')
logger.warning('warning msg')
logger.error('error msg')

在这里插入图片描述

日志文件的转存

# ======================
# -*-coding: Utf-8 -*-
# ======================
from loguru import logger
import os
# 当前文件的目录路径
dir_path = os.path.abspath(os.path.dirname(__file__))
# 日志路径
log_file_path = os.path.join(dir_path,'loguru_{time:%Y-%m-%d}.log')
# 配置日志输出到文件,输出最低等级为info,格式自定义
logger.add(log_file_path,format="{time} {level} {message}",level="INFO")
logger.debug('debug msg')
logger.info('info msg')
logger.warning('warning msg')
logger.error('error msg')

# 通过配置rotaion参数,指定文件转存的条件
logger.add(log_file_path,rotation="500MB") # 超过500MB自动分割文件
logger.add(log_file_path,rotation="12:00") # 每天固定时间定时创建文件
logger.add(log_file_path,rotation="1 week") # 每隔一段时间创建文件

# 通过配置retention参数,指定文件存储的条件
logger.add(log_file_path,retention="10 days") # 可以指定日志的保留时长 ,retention=“10 days” 每隔10天就会清理旧的日志,这样就不会造成内存的浪费

# 通过配置compression参数可以指定日志文件的压缩格式
logger.add(log_file_path,compression="gz")

​有add()就有remove(),add()函数定义了日志输出行为后,会返回一个int类型的id,remove()函数通过这个id就可以删除之前在add()函数中所定义的东西

# ======================
# -*-coding: Utf-8 -*-
# ======================
from loguru import logger
import os
# 当前文件的目录路径
dir_path = os.path.abspath(os.path.dirname(__file__))
# 日志路径
log_file_path = os.path.join(dir_path,'loguru_{time:%Y-%m-%d}.log')
# 配置日志输出到文件,输出最低等级为info,格式自定义
logger.add(log_file_path,format="{time} {level} {message}",level="INFO")
# 删除刚才在add()自定义输出
logger.remove()
logger.debug('debug msg')
logger.info('info msg')
logger.warning('warning msg')
logger.error('error msg')

文件的日志内容是空白的

remove(handler_id=None): 会删除之前所有add()中自定义的东西,包括Loguru的默认配置

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python Loguru 是一个易于使用的日志库,它提供了简洁的语法和强大的功能,可以帮助开发者在应用程序记录和管理日志。 Loguru 具有以下特点: 1. 简洁的语法:Loguru 提供了简单直观的 API,使得记录日志变得轻而易举。开发者可以使用类似于 print 函数的语法来记录日志,而无需担心繁琐的配置。 2. 强大的功能:Loguru 支持将日志输出到控制台、文件、网络和其他自定义目标。开发者可以根据自己的需求配置不同的输出方式和格式。 3. 自动回滚:Loguru 具备自动回滚功能,可以根据配置的大小或时间进行日志文件的分割和归档,避免日志文件过大或过长。 4. 异常追踪:Loguru 提供了异常追踪功能,可以方便地记录和追踪应用程序的异常信息,帮助开发者快速定位和修复问题。 5. 上下文管理:Loguru 支持上下文管理,可以在日志添加上下文信息,如请求 ID、用户 ID 等,方便开发者跟踪和调试应用程序。 使用 Loguru 非常简单,只需要在代码导入 loguru 模块,并使用 loguru.logloguru.logger 对象来记录日志即可。 下面是一个使用 Loguru 记录日志的示例: ```python import loguru loguru.logger.add("file.log") # 将日志输出到文件 loguru.logger.info("This is an info message") # 记录一条信息日志 loguru.logger.warning("This is a warning message") # 记录一条警告日志 loguru.logger.error("This is an error message") # 记录一条错误日志 ``` 以上是 Loguru 的一些基本用法,你还可以通过配置文件或函数参数来自定义日志记录的行为。详细的用法和更多功能请参考 Loguru 官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值