日志维护库:loguru

在复杂的项目中,了解程序的运行状态变得至关重要。在这个过程中,日志记录(logging)成为我们追踪、调试和了解代码执行的不可或缺的工具。在python语言中常用logging日志库,但是logging日志库使用相对繁琐,在这里推荐日志库:loguru。
1. 安装
pip install loguru
loguru相对于logging不需要复杂的配置。
2. 使用说明
2.1. 日志打印
from loguru import loggerlogger.debug('调试消息')
logger.info('普通消息')
logger.warning('警告消息')
logger.error('错误消息')
logger.critical('严重错误消息')
logger.success('成功调用')# 关闭控制台输出
# logger.remove(handler_id=None)
2.2. 日志保存
import os
from loguru import loggerlogDir = "../file.log"
if not os.path.exists(logDir):os.mkdir(logDir)# 终端输出控制
# logger.remove(handler_id=None)# 设置日志保存文件
logger.add(logFile)
logger.debug('调试消息')
logger.info('普通消息')
logger.warning('警告消息')
logger.error('错误消息')
logger.critical('严重错误消息')
logger.success('成功调用')
loguru默认的输出格式是:时间、级别、模块、行号以及日志内容。
自定义设置
logger.add('file_{time}.log', format="{name} {level} {message}", level="INFO", rotation='5 MB', retention="10 days", compression="zip", encoding='utf-8'))
- 日志名设置
- 日志格式
- 日志级别
- rotation:指定日志文件大小,达到指定文件大小后新建日志
- retention:设置定期清理的时间
- compression:日志压缩
2.3 记录报错信息
logger.exception('错误消息')记录报错信息。
注意,logger.error('错误消息')无法记录程序的报错信息。
参考
[1] https://github.com/Delgan/loguru
[2] https://loguru.readthedocs.io/en/stable/index.html
欢迎关注公众号

相关文章:
日志维护库:loguru
在复杂的项目中,了解程序的运行状态变得至关重要。在这个过程中,日志记录(logging)成为我们追踪、调试和了解代码执行的不可或缺的工具。在python语言中常用logging日志库,但是logging日志库使用相对繁琐,在…...
【Go入门】 Go如何使得Web工作
【Go入门】 Go如何使得Web工作 前面小节介绍了如何通过Go搭建一个Web服务,我们可以看到简单应用一个net/http包就方便的搭建起来了。那么Go在底层到底是怎么做的呢?万变不离其宗,Go的Web服务工作也离不开我们第一小节介绍的Web工作方式。 w…...
汽车虚拟仿真视频数据理解--CLIP模型原理
CLIP模型原理 CLIP的全称是Contrastive Language-Image Pre-Training,中文是对比语言-图像预训练,是一个预训练模型,简称为CLIP。该模型是 OpenAI 在 2021 年发布的,最初用于匹配图像和文本的预训练神经网络模型,这个任…...
【Web】Ctfshow SSTI刷题记录1
目录 ①web361 362-无过滤 ②web363-过滤单双引号 ③web364-过滤单双引号和args ④web365-过滤中括号[]、单双引号、args ⑤web366-过滤单双引号、args、中括号[]、下划线 ⑦web367-过滤单双引号、args、中括号[]、下划线、os ⑧web368-过滤单双引号、args、中括号[]、下…...
【广州华锐互动】VR可视化政务服务为公众提供更直观、形象的政策解读
虚拟现实(VR)技术正在逐渐应用于政务服务领域,为公众提供更加便捷、高效和个性化的服务体验。通过VR眼镜、手机等设备,公众可以在虚拟环境中参观政务服务中心,并根据自己的需求选择不同的办事窗口或事项进行咨询和办理…...
音视频项目—基于FFmpeg和SDL的音视频播放器解析(七)
介绍 在本系列,我打算花大篇幅讲解我的 gitee 项目音视频播放器,在这个项目,您可以学到音视频解封装,解码,SDL渲染相关的知识。您对源代码感兴趣的话,请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本…...
Sql Server 2017主从配置之:发布订阅
使用发布订阅模式搭建Sql Server 2017主从同步,类似事件通知机制,基本可以做到准实时同步,可以同时做到一对多的数据同步。 不过发布订阅模式,只能同时数据,不能同步表结构。在创建发布的时候,需要选择需要…...
聊聊logback的EvaluatorFilter
序 本文主要研究一下logback的EvaluatorFilter EvaluatorFilter ch/qos/logback/core/filter/EvaluatorFilter.java public class EvaluatorFilter<E> extends AbstractMatcherFilter<E> {EventEvaluator<E> evaluator;Overridepublic void start() {if …...
解决vue 部分页面缓存,部分页面不缓存的问题
前端时间项目迭代,其中有个需求 在vue里面,有a.b.c三个页面,要达到的效果是从a页面进去b页面,b页面需要刷新,但若从b页面进入c页面了以后再回到b页面,b页面需要保留之前的值,不做刷新࿱…...
修完这个 Bug 后,MySQL 性能提升了 300%
最近 MySQL 官方在 8.0.35 上修复了一个 bug: 这个 bug 是由 Mark Callaghan 发现的。Mark 早年在 Google MySQL 团队,后来去了 Meta MySQL,也主导了 RocksDB 的开发。 Mark 在 #109595 的 bug report 给出了非常详细的复现步骤 在官方修复后…...
【C/PTA】数组进阶练习(二)
本文结合PTA专项练习带领读者掌握数组,刷题为主注释为辅,在代码中理解思路,其它不做过多叙述。 目录 7-1 字符串逆序7-2 字符串替换7-3 统计字符出现次数7-4 IP地址转换7-1 删除重复字符7-2 说反话-加强版7-3 数组-回文串7-4 数组-无聊的菇菇…...
Mysql MMM
MMM概述 MMM(Master-Master replication manager for MvSQL,MySQL主主复制管理器) 是一套支持双主故障切换和双主日常管理的脚本程序。 MMM 使用 Perl 语言开发,主要用来监控和管理MySQL Master-Master(双主)复制&…...
GDPU 数据结构 天码行空10
目录 数据结构实验十 树遍历应用一、【实验目的】二、【实验内容】三、【实验源代码】⭐ CPP版⭐ c语言版 四、实验结果 数据结构实验十 树遍历应用 一、【实验目的】 1、了解树的建立方法 2、掌握树与二叉树的转化及其遍历的基本方法 3、掌握递归二叉树遍历算法的应用 二、…...
CD36 ; + Lectin;
CD2 LIMP-2, LGP85 SR-BI, CD36; 清道夫受体蛋白CD36超家族的成员是 脂质代谢 和 先天免疫 的重要调节因子。它们识别正常和修饰的脂蛋白,以及与病原体相关的分子模式。 该家族由三个成员组成: SR-BI &am…...
Git 分支管理
目录 列出分支 删除分支 分支合并 合并冲突 几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。 使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。 Git 分支实际上是指向更改快照的指针。 有…...
Vue23全局事件总线
Vue2&3全局事件总线 Vue2全局事件总线 功能:可以解决所有组件之间通信传数据的问题原理:通过一个共享对象,将所有组件全部绑定到对象上,即可通过这个对象实现组件与组件之间的传递数据,而这个共享对象叫做全局事件…...
GEM5 Garnet DVFS / NoC DVFS教程:ruby.clk_domain ruby.voltage_domain
简介 gem5中的 NoC部分是Garnet实现的,但是Garnet并没有单独的时钟域,而是保持ruby一致,要做noc的DVFS,便是要改ruby的 改电压 #这里只是生成一个随便变量名,存一下值。改是和频率一起的 userssaved_voltage_domain…...
java命令 jmap 堆参数分析
jmap -heap pid 展示pid的整体堆信息 bash-4.4# jmap -heap 10 Attaching to process ID 10, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.172-b11using thread-local object allocation. Garbage-First (G1) GC with 8 th…...
OpenCV C++ 图像处理实战 ——《OCR字符识别》
OpenCV C++ 图像处理实战 ——《OCR字符识别》 一、结果演示二、tesseract库配置2.1下载编译三、OCR字符识别3.1 文本检测方式3.1.1 RIL_BLOCK3.1.2 RIL_PARA3.1.3 RIL_TEXTLINE3.1.4 RIL_WORD3.1.5 RIL_SYMBOL3.2 英文文本检测3.3 中英文本检测四、源码测试图像下载总结一、结…...
在MySQL中创建新的数据库,可以使用命令,也可以通过MySQL工作台
摘要:在本教程中,你将学习如何使用MySQL CREATE DATABASE语句在MySQL数据库服务器上创建新数据库。 MySQL CREATE DATABASE语句简介 要在MySQL中创建新数据库,可以使用CREATE DATABASE语句。以下说明了CREATE DATABASE语句的基本语法: CREATE DATABASE [IF NOT EXISTS] …...
ChartGPT深度解析:基于AI的自然语言图表生成架构设计与企业级应用
ChartGPT深度解析:基于AI的自然语言图表生成架构设计与企业级应用 【免费下载链接】chart-gpt AI tool to build charts based on text input 项目地址: https://gitcode.com/gh_mirrors/ch/chart-gpt ChartGPT是一款创新的AI驱动图表生成工具,通…...
量子机器学习:平衡数据复杂度与电路表达力的核心策略
1. 项目概述:量子机器学习中的核心平衡艺术在量子机器学习这个前沿交叉领域摸爬滚打了几年,我越来越深刻地意识到,决定一个模型成败的,往往不是最炫酷的量子门设计,而是一个看似基础却极易被忽视的平衡问题:…...
Wireshark与Fiddler联手解密HTTPS流量实战指南
1. 为什么单靠Wireshark看不了真正的HTTPS请求内容?你有没有试过在Wireshark里抓到一堆TLSv1.3的Encrypted Handshake Message,点开Application Data全是乱码,连自己发的登录请求里用户名填的是“admin”还是“test123”都看不到?…...
STM32按键控制SG90舵机摆动的5个创意小项目实践(附完整工程)
STM32按键控制SG90舵机摆动的5个创意小项目实践(附完整工程) 对于已经掌握了STM32基础PWM控制SG90舵机的电子爱好者来说,如何将这项技能转化为有趣的实际应用,往往是激发创造力的关键一步。本文将分享5个基于按键控制的舵机创意项…...
Spring Boot项目里,我是怎么把文心一言API集成进去的(附完整代码)
Spring Boot项目中集成文心一言API的实战指南 最近在开发一个需要AI对话功能的Spring Boot应用时,我选择了百度的文心一言作为后端引擎。整个过程从申请API权限到最终实现流式响应,踩了不少坑也积累了一些经验。本文将分享如何在Spring Boot项目中优雅地…...
计算机网络 --- OSPF
获取未知网段路由信息的方法:静态路由 --- 由网络管理员手工配置的路由信息动态路由 --- 所有路由器运行相同的路由协议,由路由器之间彼此沟通交流,最终计算出到达未知网段的路由信息AS --- 自治系统IGP --- 内部网关协议 --- RIP,…...
3分钟解锁QQ音乐加密文件:Mac用户必备的免费解密工具指南
3分钟解锁QQ音乐加密文件:Mac用户必备的免费解密工具指南 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默…...
MySQL报错注入与堆叠注入的底层原理与实战对抗
1. 这不是“学SQL注入”,而是重建你对数据库交互的认知边界2021年7月8日这个日期,对很多刚入CTF圈的朋友来说,可能只是训练平台里一个普通题目的提交时间戳。但对我而言,那天在调试一道看似简单的报错注入题时,连续卡了…...
用Python手撸一个垃圾邮件过滤器:从数据清洗到模型预测的保姆级教程
用Python手撸一个垃圾邮件过滤器:从数据清洗到模型预测的保姆级教程每天打开邮箱,总能看到一堆"恭喜中奖"、"限时优惠"的未读邮件——这种体验想必大家都不陌生。作为开发者,我们完全可以用Python从零开始打造一个专属的…...
3.RAG
一、RAG初识: RAG(Retrieval-Augmented Generation,检索增强生成)是一种将 信息检索与文本生成 相结合的技术框架。它通过以下流程解决大模型(LLM)的“知识盲区”问题: 用户问题->从知识库检索相关文档->将文档作为上下文输入LLM->生成精准答…...
