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

news2024/11/29 8:39:13

在 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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux进程间通信(信号量)

信号量是一个特殊的变量,程序对其访问都是原子操作,且只允许对它进行等待(即 P(信号变量))和发 送(即 V(信号变量))信息操作。最简单的信号量是只能取 0 和 1 的变量,这也是信号量最常见的一种形式, 叫做二…

由于找不到iutils.dll而造成的错误,要怎么去解决?

在使用电脑或运行某些软件时,有时会遇到“找不到iutils.dll”的错误提示。这个错误通常表示缺少iutils.dll文件或者该文件已经损坏。如果你遇到了这个问题,不要担心,因为有很多方法可以解决这个问题。下面我们一起来看看找不到iutils.dll的问…

在spring容器启动后监听事件ApplicationReadyEvent

概述 经常会在业务中遇到需要在项目启动后刷新/预热一些数据的要求。 常见可以监听ApplicationReadyEvent和ContextRefreshedEvent. 但是因为常见的springboot项目都依赖的springmvc,所以实际上有2个容器,spring的ioc容器是springmvc的父容器。 而且C…

电脑上怎么录屏?2个好用的电脑录屏方法分享!

案例:怎么在电脑上录屏? 【我想分享我电脑上的操作、游戏画面给我的朋友,但是我不知道如何录制电脑屏幕。有没有详细的电脑录屏方法,在线蹲一个!】 你是否曾经遇到这样的情况:需要录制电脑屏幕上的一些操…

ICLR2023 | RetMol:基于检索的可控分子生成

题目:Retrieval-based Controllable Molecule Generation 文章地址:https://openreview.net/pdf?idvDFA1tpuLvk 代码地址:GitHub - NVlabs/RetMol: A new retrieval-based framework for controllable molecule generation. 主题&#xf…

Netty中NioEventLoop介绍

一、Netty基本介绍 Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。Netty 在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。 Netty 是一…

为什么 AIGC 和大模型创业者都在安利向量数据库?

从目前 VC 的投资数据来看,大家对 AI 的关注点主要有三个:一个是基础大模型 LLM,第二个是具体某个场景的应用(包括小模型),第三个就属基础模型与应用层之间的中间层了(开发者工具和数据库等&…

AI视频成工具D-ID介绍(AI数字人常用工具)

Studio D-id,​一个AI视频成工具,用AI创作的数字人,输入人物关键词就可一键生成人物,上传要说的文本或音频则可以开口说话了。 关于AI语音,有很多选项可供选择。目前,Studio D-id支持多达66种语言。然后,您…

蚂蚁集团发布2022可持续发展报告:科研投入204.6亿,实现3年翻倍

蚂蚁集团6月1日对外发布《2022年可持续发展报告》(下简称‘报告’),披露2022年度相关工作进展。《报告》显示,2022年,蚂蚁持续攻坚前沿和底层数字科技,年度科研投入204.6亿元。较2019年,科研投入…

19c rac部署-ssh版本太高的问题

客户有个环境需要部署19c,安装的oracle linux 7.9.,OpenSSH_7.4p1版本适合安装19c集群,但接到环境时,发现openssh已升级到9.0了,理由是等保需要,哎,不抱怨自己解决问题 [INS-32070] Could not r…

外贸网站建设中经常遇到的问题有哪些?

企业外贸网站是企业展示自我,提高品牌知名度的重要工具。在外贸网站建设中,我们也会遇到各种问题,例如,外贸网站设计、 SEO优化、制作周期以及质量等,都是我们在建设外贸网站中需要考虑的问题。 建设一个外贸网站需要多…

BFT最前线 | iOS版ChatGPT周下载突破50万人次;英伟达市值突破万亿美元创造芯片公司历史;华为开发者大会即将发布

原创 | 文 BFT机器人 AI视界 TECHNOLOGY NEWS 01 联合国教育部聚焦生成式AI 联合国科教文组织提出发展路线图 近日,为应对生成式人工智能技术的迅速发展,联合国教科文组织就此议题召开了首次全球教育部长会议。40多位部长分享了将这些工具融入教育的…

10.ES6模块化规范(关键字 import,from,as,export的用法)

导入其他模块成员要使用关键字 import ,导出需要使用关键字 export 我们明确一个概念,只有js与js之间需要使用import与export,如果是在html中引入js是不需要用import的,你导入的方式是直接srcxxx.js 目录 1 默认导入导出 2 …

CMake构建Makefile深度解析:从底层原理到复杂项目

CMake构建深度解析:从底层原理到复杂项目实践 一、CMake构建后的项目结构解析(Analysis of the Project Structure After CMake Build)1.1 CMake构建后的目录结构(Directory Structure After CMake Build)1.2 构建生成…

分布式锁的应用场景与分布式锁实现(一):传统锁处理并发及传统锁的问题

分布式锁 代码已同步至GitCode:https://gitcode.net/ruozhuliufeng/distributed-project.git ​ 在应用开发中,特别是Web工程开发,通常都是并发编程,不是多进程就是多线程。这种场景下极其容易出现线程并发性问题,此时…

新能源汽车充电桩的建设及优化分析

安科瑞虞佳豪 新能源汽车充电桩在经历了几年的发展之后,总体情况是在持续走好的,并且充电桩的建设相较于以往有了很大的普及度和安全度,这对新能源汽车车主是一个好事,也鼓励了更多人选择买新能源汽车,但这并不是说新…

HTTP劫持是什么?如何防止网站被劫持呢?

HTTP劫持(HTTP hijacking)是一种网络攻击技术,攻击者通过各种手段截取用户的HTTP请求或响应,篡改其内容或重定向到恶意服务器,从而实施恶意活动。这种攻击可能导致用户信息泄露、身份盗窃、篡改网页内容或植入恶意代码…

鼎盛合充气泵方案——便携车载充气泵方案

便携车载充气泵主要使用在汽车轮胎充气及车胎检测上,是一个气压精度测量产品。充气泵方案则是通过马达运转工作而进行设计,利用芯片和气压传感器所做的一个智能化便携车载充气泵方案。 便携车载充气泵方案的使用范围其实不仅仅是汽车轮胎,它在…

Android Studio Flamingo编译项目问题记录

系统版本:macOS 13.4 Android Studio Flamingo | 2022.2.1 Patch 2 下载地址:Download Android Studio & App Tools - Android DevelopersAndroid Studio provides app builders with an integrated development environment (IDE) optimized for …

protobuf笔记

protoc -Ipb/protos -Ipb/protos/third/github.com pb/protos/custom/*.proto -I 指定需要import的gogo.proto文件路径, protoc查找过程为 -I后面的路径和import的路径拼接在一起。 -Ipb/protos 指定proto源文件路径-Ipb/protos/third/github.com 指定第三方proto&…