Python Loguru轻松灵活的日志管理库基本用法探索

 更新时间:2024年01月22日 11:44:44   作者:半个码农  
Loguru是一个用于Python的高性能、简洁且灵活的日志库,它的目标是提供一种简单的方式来记录应用程序的运行情况,同时保持代码的简洁性和可读性,本文将探索loguru的基本用法

前言

我们在实际项目中,经常需要保持程序运行的日志,数据,错误等,Loguru没出来前我们都是通过 Python 自带的库logging去封装一个打印log的类,然后到处去import 调用,如果想某个程序增加打印log的内容还要去修改封装的logging类,导致会出现很多的logging封装文件出来。刚刚好Loguru的出现解决了。

什么是loguru? 

Loguru是一个用于Python的高性能、简洁且灵活的日志库。它的目标是提供一种简单的方式来记录应用程序的运行情况,同时保持代码的简洁性和可读性,本文将探索loguru的基本用法

安装

使用pip来安装loguru库。在你的命令行中输入以下命令

pip install loguru

基本用法

导入loguru

适用3.5及其以上版本

>>> from loguru import logger 

log保存的文件

>>> logger.add("D:\logs\logs.log") # 如果logs目录不存在会给你自动创建
1

更灵活的保存日志方式

logger.add("test_1.log", rotation="500 MB")    # 日志超过500M 创建新log文件
logger.add("test_2.log", rotation="12:00")     # 每天中午12点创建一个新的log文件
logger.add("test_3.log", rotation="1 week")    # 文件太旧,自动创建新的
logger.add("test_X.log", retention="10 days")  # 10 天后qingl日志
logger.add("test_Y.log", compression="zip")    # 保存压缩文件 ,节省空

打印log输出log到文件里面

1
>>> logger.debug("this is debug info")
[32m2023-11-23 23:33:26.858[0m | [34m[1mDEBUG   [0m | [36m__main__[0m:[36m<module>[0m:[36m1[0m - [34m[1mthis is debug info[0m
>>> logger.info("this is info")
[32m2023-11-23 23:34:20.482[0m | [1mINFO    [0m | [36m__main__[0m:[36m<module>[0m:[36m1[0m - [1mthis is info[0m
>>> logger.warning("这是一个警告信息")
[32m2023-11-23 23:34:37.977[0m | [33m[1mWARNING [0m | [36m__main__[0m:[36m<module>[0m:[36m1[0m - [33m[1m这是一个警告信息[0m
>>> logger.error("这是个错误信息")
[32m2023-11-23 23:36:32.399[0m | [31m[1mERROR   [0m | [36m__main__[0m:[36m<module>[0m:[36m1[0m - [31m[1m这是个错误信息[0m
>>> logger.critical("这是个严重错误信息")
[32m2023-11-23 23:37:05.448[0m | [41m[1mCRITICAL[0m | [36m__main__[0m:[36m<module>[0m:[36m1[0m - [41m[1m这是个严重错误信息[0m
>>> logger.info("i using Python {}, support {feature} !", 3.9, feature="f-strings") #格式化输出
[32m2023-11-25 09:19:50.034[0m | [1mINFO    [0m | [36m__main__[0m:[36m<module>[0m:[36m1[0m - [1mi using Python 3.9, support f-strings ![0m
以

以上是在python idle里面执行的,不会显示样式,看下面截图,在cmd里面执行的

捕获异常

>>> @logger.catch
def fun(x,y):return x/y
>>> fun(1,0)

设置日志级别

怎么添加handler、如何设置日志格式、怎么添加过滤消息和设置日志级别,一个logger.add()帮忙你搞定

logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO")

总结

Python loguru有以下优点

  • 简单易用:Loguru 提供了简洁明了的 API,只需导入模块,一行代码即可调用。

  • 灵活性:Loguru 支持多种输出方式(如控制台、文件等),并且可以自定义输出格式和级别。

  • 高效性:Loguru 使用了异步 I/O 技术,可以提高日志记录的效率。

  • 兼容性:Loguru 兼容 Python 3.5+ 版本,可以在各种环境下使用。

  • 功能丰富:Loguru 支持多种日志级别、过滤器、上下文管理,捕获异常等功能,可以满足不同场景的需求

更多的用法参考:

github: https://github.com/Delgan/loguru 

官方文档:https://loguru.readthedocs.io/en/stable/index.html

以上就是Python Loguru轻松灵活的日志管理库基本用法探索的详细内容,更多关于Python Loguru日志管理库的资料请关注脚本之家其它相关文章!

相关文章

  • 详解如何用OpenCV + Python 实现人脸识别

    详解如何用OpenCV + Python 实现人脸识别

    这篇文章主要介绍了详解如何用OpenCV + Python 实现人脸识别,非常具有实用价值,需要的朋友可以参考下
    2017-10-10
  • python实现简单的TCP代理服务器

    python实现简单的TCP代理服务器

    这篇文章主要介绍了python实现简单的TCP代理服务器,包含了完整的实现过程及对应的源码与说明文档下载,非常具有参考借鉴价值,需要的朋友可以参考下
    2014-10-10
  • python虚拟机之描述器实现原理与源码分析

    python虚拟机之描述器实现原理与源码分析

    在本篇文章当中主要给大家介绍描述器背后的实现原理,通过分析 cpython对应的源代码了解与描述器相关的字节码的指令,我们就可以真正了解到描述器背后的原理,需要的朋友可以参考下
    2023-05-05
  • Python实现矩阵运算的方法代码实例

    Python实现矩阵运算的方法代码实例

    这篇文章主要介绍了Python实现矩阵运算的方法代码实例,想用python实现一个矩阵类,它可以像matlab或者numpy中的矩阵一样进行运算,生成一个矩阵类Matrix之后,他接收一个二维列表作为输入,然后将对应的值写到矩阵对应的位置,需要的朋友可以参考下
    2023-08-08
  • pyQT5 实现窗体之间传值的示例

    pyQT5 实现窗体之间传值的示例

    今天小编就为大家分享一篇pyQT5 实现窗体之间传值的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • pycharm恢复默认设置或者是替换pycharm的解释器实例

    pycharm恢复默认设置或者是替换pycharm的解释器实例

    今天小编就为大家分享一篇pycharm恢复默认设置或者是替换pycharm的解释器实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Django单元测试中Fixtures的使用方法

    Django单元测试中Fixtures的使用方法

    这篇文章主要介绍了Django单元测试中Fixtures用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • python构造icmp echo请求和实现网络探测器功能代码分享

    python构造icmp echo请求和实现网络探测器功能代码分享

    本文分享了二个python示例,python构造icmp echo请求、实现网络探测器功能代码,类似nmap功能
    2014-01-01
  • Python动刷新抢12306火车票的代码(附源码)

    Python动刷新抢12306火车票的代码(附源码)

    这篇文章主要介绍了Python动刷新抢12306火车票的完整代码,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-01-01
  • Python模拟伯努利试验和二项分布代码实例

    Python模拟伯努利试验和二项分布代码实例

    这篇文章主要介绍了Python模拟伯努利试验和二项分布代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05

最新评论