Python中Loguru模块的具体使用

 更新时间:2025年10月19日 11:31:04   作者:运维开发小白  
loguru 是一个 Python 简易且强大的第三方日志记录库,该库旨在通过添加一系列有用的功能来解决标准记录器的注意事项,从而减少 Python 日志记录的痛苦,感兴趣的可以了解一下

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的默认配置

到此这篇关于Python中Loguru模块的具体使用的文章就介绍到这了,更多相关Python Loguru模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python爬虫PyQuery库基本用法入门教程

    Python爬虫PyQuery库基本用法入门教程

    这篇文章主要介绍了Python爬虫PyQuery库基本用法,结合实例形式较为详细的分析了pyQuery库字符串初始化、打开网页、css属性、标签内容等获取、DOM基本操作等相关技巧与使用注意事项,需要的朋友可以参考下
    2018-08-08
  • Python新手在作用域方面经常容易碰到的问题

    Python新手在作用域方面经常容易碰到的问题

    这篇文章主要介绍了Python新手在作用域方面经常容易碰到的问题,全局变量和局部变量方面的知识在Python学习当中是基础中的基础,需要的朋友可以参考下
    2015-04-04
  • pip install -e.出现xxx module not found error的问题解决方案

    pip install -e.出现xxx module not fou

    这篇文章主要介绍了pip install -e.出现xxx module not found error的问题解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • Python中if语句的使用方法及实例代码

    Python中if语句的使用方法及实例代码

    if语句能够进行条件测试,并依据一定的条件进行具体的操作,下面这篇文章主要给大家介绍了关于Python中if语句的使用方法及实例代码,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 基于Python开发图片文件信息统计工具

    基于Python开发图片文件信息统计工具

    这篇文章主要为大家详细介绍了如何开发一个基于Python的图形化工具,帮助用户快速统计文件夹中所有图片的详细信息并导出到Excel文件中,有需要的小伙伴可以了解下
    2025-05-05
  • Python语言描述最大连续子序列和

    Python语言描述最大连续子序列和

    这篇文章主要介绍了Python语言描述最大连续子序列和,具有一定借鉴价值,需要的朋友可以了解下。
    2017-12-12
  • Python使用pdfminer库玩转PDF文本提取

    Python使用pdfminer库玩转PDF文本提取

    pdfminer是一个开源的Python第三方库,专门用于解析PDF文件,本文主要为大家详细介绍了如何使用pdfminer实现PDF文本提取,有需要的小伙伴可以了解下
    2025-02-02
  • 一步步教你用python给女朋友写个微信自动提醒的程序

    一步步教你用python给女朋友写个微信自动提醒的程序

    如今微信已成为我们日常生活的主要交流工具,但是微信自身的功能有时候可能并不能满足我们的需要,因此我们会想是否可以进行微信功能的拓展呢,这篇文章主要给大家介绍了关于利用python给女朋友写了个微信自动提醒程序的相关资料,需要的朋友可以参考下
    2021-10-10
  • Python多叉树的构造及取出节点数据(treelib)的方法

    Python多叉树的构造及取出节点数据(treelib)的方法

    今天小编就为大家分享一篇Python多叉树的构造及取出节点数据(treelib)的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 利用python+request通过接口实现人员通行记录上传功能

    利用python+request通过接口实现人员通行记录上传功能

    这篇文章主要介绍了利用python+request通过接口实现人员通行记录上传功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01

最新评论