【python】之loguru库,好用的日志管理库!

在 Python 中用到日志记录,那就不可避免地会用到内置的 logging标准库 。虽然logging 库采用的是模块化设计,你可以设置不同的 handler 来进行组合,但是在配置上通常较为繁琐;而且如果不是特别处理,在一些多线程或多进程的场景下使用 logging还会导致日志记录会出现错乱或是丢失的情况。

为啥要用loguru?

因为它不仅能够减少繁琐的配置过程还能实现和logging类似的功能,同时还能保证日志记录的线程进程安全,又能够和logging 相兼容,并进一步追踪异常也能进行代码回溯。这个库叫loguru—— 一个专为像我这样懒人而生日志记录库。

一.loguru库 安装

loguru库这边我们使用pip接口进行安装:

pip install loguru

pip接口详细说明可以看:https://blog.csdn.net/pengneng123/article/details/129556320

二.loguru库基础函数使用

1.logger.debug():输出日志信息

from loguru import logger

logger.debug("log message")

输出:

会输出实时时间以及日志信息,我们不需要提前配置什么,直接用就可以。

2.logger.add() :创建一个文件

from loguru import logger  ##导入库

logger.add("Demo_file.log")

logger.debug("log message") ##输出日志

输出:

 

2.1 rotation参数:滚动记录日志文件

通过配置rotation参数,指定日志文件滚动记录的条件,如下所示:

logger.add("Demo_file.log", rotation="10 MB")

通过这样的配置我们就可以实现每 10MB 存储一个文件,每个 log 文件过大就会新创建一个新的 log 文件。

logger.add("Demo_file.log", rotation="22:00") 

上面的配置,可以实现每天22点创建一个log文件输出了

2.2 retention参数:日志保留时长

通过配置retention参数,可以指定日志的保留时长:

logger.add("Demo_file.log", retention="10 days")  

通过上面的配置,就可以指定日志最多保留10天,每隔10天之后就会清理旧的日志,这样就不会造成内存浪费

2.3 compression参数:日志文件压缩文件zip

logger.add("Demo_file.log", compression="zip") # 日志文件压缩文件zip

3.logger.remove():不在控制台输出日志信息

from loguru import logger  ##导入库

logger.remove(handler_id=None)

logger.add("Demo_file.log")

logger.debug("log message") ##输出日志

 因为logger是默认输出至stderr的,所以只需要在之前把它给remove掉就好了。

输出:

三.总结

开箱即用,无需样板,使用方便!

@Neng

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/26568.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nautilus Chain全球行分享会,深圳站圆满举办

在北京时间 6 月 4 日,由 Nautilus Chain 主办的“Layer3 模块化区块链的发展探讨”为主题的全球行活动,在深圳(深圳南山区清华研究院)顺利举办,本次分享会联合主办方还包括 Stanford Blockchain Accelerator、Zebec …

OpenGL简介

1.简介 一般它被认为是一个API,包含了一系列可以操作图形、图像的函数。然而,OpenGL本身并不是一个API,它仅仅是一个由Khronos组织制定并维护的规范(Specification)。OpenGL规范严格规定了每个函数该如何执行,以及它们的输出值。…

开发一个收废品小程序步骤

随着环保意识的提升和可持续发展的迫切需求,废品回收成为了一个重要的议题。预约上门回收小程序的开发为用户提供了方便、快捷的废品回收服务,促进了废品资源的再利用和环保行动的推进。本文将介绍开发预约上门回收小程序的流程,以帮助开发人…

IDEA启动图片更改替换(2021.1/2022及其之后的版本)

目录 先说2022.1及其之后的版本: 2022.1之前的版本: 2022其他版本修改方法 最近一直在整理接口数据,盯屏幕太久了,然后打开IDEA突然感觉这个启动页面好刺眼,正好整理工作做完了,中午有空就找了下方法,发现了不少坑,…

Linux命令(26)之uptime

Linux命令之uptime 1.uptime介绍 linux命令uptime是用来为用户提供系统从开启到当前运行uptime命令时系统已运行的时长信息,除此之外,还提了系统启动时间,当前登录用户,系统平均负载信息。 2.uptime用法 uptime [参数] uptime…

ChatGPT 提示的艺术 —— 如何编写清晰有效提示指南

ChatGPT 提示的作用 正如我们之前提到的那样,ChatGPT 对话中使用的提示的质量可以显著影响对话的成功。定义清晰的提示可以确保对话保持在正确的轨道上,并涵盖用户感兴趣的主题,从而产生更引人入胜和信息丰富的体验。 那么什么样的 ChatGPT…

Linux进程间通信——管道,共享内存,消息队列,信号量

进程间通信 文章目录 进程间通信进程间通信的方式进程间通信的概念如何实现进程间通信管道什么是管道 进程间怎么通信 匿名管道pipe函数创建管道通信读写特征写慢读快写快读慢写端关闭,读端读完读端关闭,写端? 管道特征 命名管道命名管道特性…

2023接口自动化测试,完整入门篇(超详细~)

一、自动化测试 众所周知,自动化测试已经成为软件项目中不可或缺的测试方法。基于用户交互界面(GUI)的自动化测试方法具有模拟用户行为和过程可视化的特点,因此受到了广大入门自动化人士的喜爱。诸如:QTP、Selenium等…

BR 5AP1130.156C-000

物料号: 5AP1130.156C-000 描述: 自动化装置面板 15.6" FullHD TFT - 1920 x 1080 像素 (16:9) - 多点触控(投射电容) - 开关柜安装 - 横向 - 用于 PPC900/PPC2100/PPC3100/ 联接模块 B&R ID 代码0xEC5D许可证 显示屏 类型TFT 彩色对角线…

图论试题2020

n-m 2 16 Pk(Kn)k(k-1)…(k-n1)。 C:A2对角线元素aii2等于对应顶点vi的度数,所以对角线元素之和等于边数的两倍。 A的所有特征值的平方和等于A2的对角线元素之和。 B 完全图没有顶点隔,实际上也只有以完全图为生成子图的图没有顶点隔。 连通…

StarRocks案例2: 升级后性能变慢

文章目录 一. 问题描述二. 解决方案2.1 从慢查询定位2.2 定位CPU解析时间就的问题 一. 问题描述 2023-05-18 将StarRocks从2.3.0升级到2.5.5。 升级完成后,所有的查询均比较慢,前端报表页面点开也卡。 二. 解决方案 2.1 从慢查询定位 StarRocks慢查询…

大数据:HDFS存储原理,fsck命令查看文件副本状态,namenode元数据,edits流水账,fsimage合并,hdfs读取数据

大数据:HDFS存储原理,fsck命令查看文件副本状态,namenode元数据,edits流水账,fsimage合并,hdfs读取数据 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人&#xff0…

Spring Boot如何实现自定义Starter?

Spring Boot如何实现自定义Starter? 在 Spring Boot 中,Starter 是一种特殊的依赖,它可以帮助我们快速地集成一些常用的功能,例如数据库连接、消息队列、Web 框架等。在本文中,我们将介绍如何使用 Spring Boot 实现自…

web前端 --- BOM编程、DOM编程

BOM编程(browser object model -- 浏览器对象模型) BOM给JavaScript提供用来操作浏览器的若干的"方法" 操作 在 js 看来,一个完整的浏览器包含如下组件: window窗口 // 整个浏览器的窗口 |-- history …

练手必备,20个Python实战项目含源代码

“读”代码是不能给你带来任何收益的,正如“读书”一样,如果在读的时候你不琢磨,保管你读完仨月准忘了一大半。真正需要的是去“试”代码,动手去调调代码,改改这改改那,看看把A变成B这个代码的结果会有什么…

最新成果展示:AlInN/GaN DBR模型数据库的开发与应用

由于AlN和GaN之间存在较大的晶格失配和热膨胀失配,导致很难获得高质量的AlN/GaN布拉格反射镜(Distributed Bragg Reflection,DBR)结构。为解决该问题,天津赛米卡尔科技有限公司技术团队基于先进的TCAD仿真设计平台开发…

MySQL 的锁

目录 一、锁的分类 二、全局锁、表级锁、页级锁、行级锁 三、乐观锁和悲观锁 四、共享锁和排它锁 五、意向共享锁和意向排它锁 六、间隙锁、临键锁、记录锁 锁的分类和用途 一、锁的分类 1、MySQL锁可以按模式分类为: 乐观锁悲观锁。 2、按粒度分可以分为&a…

STM32H743烧录后无法识别Jlink的问题

利用Cubemx生成H743的代码,点击烧录后,无法再识别到Jlink了,只能烧录时按着复位再松开(类似51单片机)。 烧录后不运行,用keil进行debug,调试发下芯片进去内存管理错误中断。 经过不断调试发现&…

功能强大UI美观的视频答题猜歌闯关娱乐微信小程序源码

正文: 功能强大UI美观的视频答题猜歌闯关娱乐微信小程序源码下载 后台管理资源本地化带数据和视频教程,这是一款拥有后端的闯关娱乐小程序。支持个人小程序和企业小程序上线运营功能强大齐全,带数据本地化(数据在自己服务器自己管理无需担心第三方失效…

为什么电源纹波那么大?

某用户在用500MHz带宽的示波器对其开关电源输出5V信号的纹波进行测试时&#xff0c;发现纹波和噪声的峰峰值达到了900多mV&#xff08;如下图所示&#xff09;&#xff0c;而其开关电源标称的纹波的峰峰值<20mv。虽然用户电路板上后级还有LDO对开关电源的这个输出再进行稳压…