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日志管理库的资料请关注脚本之家其它相关文章!

相关文章

  • 如何用python批量发送工资条邮件

    如何用python批量发送工资条邮件

    大家好,本篇文章主要讲的是如何用python批量发送工资条邮件,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • PyQt5使用mimeData实现拖拽事件教程示例解析上

    PyQt5使用mimeData实现拖拽事件教程示例解析上

    这篇文章主要为大家介绍了PyQt中如何使用mimeData实现拖拽事件的示例解析过程,有需要的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步
    2021-10-10
  • Python数据可视化Pyecharts库实现桑葚图效果

    Python数据可视化Pyecharts库实现桑葚图效果

    这篇文章主要介绍了Python数据可视化如何使用Pyecharts库来实现桑葚图效果图,文中给出实现的示例代码,有需要的朋友可以借鉴参考想,希望能够有所帮助
    2021-09-09
  • python http接口自动化脚本详解

    python http接口自动化脚本详解

    这篇文章主要为大家详细介绍了python http接口自动化脚本,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Python OpenCV识别行人入口进出人数统计

    Python OpenCV识别行人入口进出人数统计

    本文主要介绍了Python OpenCV识别行人入口进出人数统计,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2023-01-01
  • Python脚本如何在bilibili中查找弹幕发送者

    Python脚本如何在bilibili中查找弹幕发送者

    这篇文章主要介绍了如何在bilibili中查找弹幕发送者,本文给大家分享小编写的一个python脚本来实现bilibili弹幕发送者,需要的朋友可以参考下
    2020-06-06
  • PYQT5实现控制台显示功能的方法

    PYQT5实现控制台显示功能的方法

    今天小编大家分享一篇PYQT5实现控制台显示功能的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python之tkinter组合框Combobox用法及说明

    Python之tkinter组合框Combobox用法及说明

    这篇文章主要介绍了Python之tkinter组合框Combobox用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • pandas使用fillna函数填充NaN值的代码实例

    pandas使用fillna函数填充NaN值的代码实例

    最近在工作中遇到一个问题,pandas读取的数据中nan在保存后变成空字符串,所以下面这篇文章主要给大家介绍了关于pandas使用fillna函数填充NaN值的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 对python3 中方法各种参数和返回值详解

    对python3 中方法各种参数和返回值详解

    今天小编就为大家分享一篇对python3 中方法各种参数和返回值详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12

最新评论