python日志处理模块讲解-loguru

news2024/11/20 20:43:20

说明:

本篇文章主要讲的是python日志模块loguru详解,感兴趣的同学赶快来看一看吧。

背景:

在部署一些定时运行或者长期运行的任务时,为了留存一些导致程序出现异常或错误的信息,通常会采用日志的方式来进行记录这些信息。python内置的logging标准库博主是没用过,今天给大家介绍loguruloguru 库的使用可以说是十分简单,希望通过本文大家再也不用通过print来排查代码了。

安装:

pip install loguru

如果安装速度太慢,也可以换下载源。

pip install loguru -i https://pypi.tuna.tsinghua.edu.cn/simple

本机安装后查看如下:

查看内置模块如下:

使用:

# 导入模块
from loguru import logger
# 信息查看
logger.debug("debug message")
logger.info("info level message")
logger.warning("warning level message")
logger.critical("critical level message")

 结果显示:

 从这个可以看出,logger.debug、logger.info、logger.warning、logger.critical不仅可以代替print,还为输出的日志信息带上了不同的颜色样式,使得结果更加美观。

配置:

使用基本的add() 方法就可以对logger 进行简单的配置。

logger.add("runtime_{time}.log", rotation="500 MB")    # 文件过大于500M就会重新生成一个文件
logger.add("runtime_{time}.log", rotation="00:00")     # 每天0点创建新文件
logger.add("runtime_{time}.log", rotation="1 week")    # 文件每过一周就会创建新文件
logger.add("test_4.log", retention="5 days")           # 只保留最近五天的日志文件
logger.add("test_5.log", compression="zip")    # 以zip格式对日志进行保存

其中time为占位符:可以自动生成时间,生成对应文件名包含时间的 log 文件。

 异常追溯:

当遇到错误是,如果在打印出log的时候没有配置 Traceback 的输出,很有可能无法追踪错误。loguru提供了装饰器@logger.catch()就可以直接进行 Traceback 的记录。
建议在程序开始运行之前使用add()方法新建一个运行日志,这样所有的日志都会被记录到log之中。

from loguru import logger

@logger.catch()
def test():
    return 1/0

if __name__ == '__main__':
    logger.add("test.log", retention="5 days")
    test()

demo:

# 创建日志
from loguru import logger

logger.add("./log_2021-3-28.log",rotation="500MB", encoding="utf-8", enqueue=True, retention="10 days")

logger.info('This is info information')

 

# 写入日志
import platform
from loguru import logger

rounded_value = round(0.345, 2)

trace= logger.add('2021-3-28.log')

logger.info('If you are using Python {version}, prefer {feature} of course!', version=platform.python_version(), feature='f-strings')

 总结:

本文介绍了关于loguru的常用方法,使用loguru 库无疑还是很香的,毕竟别人已经为我们一些日常的通用性需求提供了封装好的解决方案,无论是在学习还是在使用的成本上,无疑还是比较小的。

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

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

相关文章

运放指标-压摆率SR

1. 压摆率SR 处理交流信号时,压摆率是运放器件重要的指标。其表示运放输出电压的转换速率。在高频信号时,若压摆率不够,则运放输出的信号会变形,导致不满足要求。其实际就是运放输出信号的分辨率,只有分辨率足…

机器学习中的数学基础(四):概率论

机器学习中的数学基础(四):概率论4 概率论4.1 一些概念4.2 二维随机变量4.2.1 离散型4.2.2 连续型4.3 边缘分布4.3.1 离散型边缘分布4.3.2 连续型边缘概率密度4.4 期望4.4.1 一维期望4.4.2 二维期望4.5 马尔可夫不等式4.6 切比雪夫不等式在看…

Vue2.0开发之——组件数据共享-Eventbus(39)

一 概述 兄弟组件之间数据共享的方案—EventBusEventBus的使用步骤EventBus的使用示例 二 兄弟组件之间数据共享的方案—EventBus 在 vue2.x 中,兄弟组件之间数据共享的方案是EventBus。 三 EventBus的使用步骤 创建 eventBus.js 模块,并向外共享一…

个人项目部署在云服务器上以及购买云服务器后如何操作

一. 购买云服务器后简单的操作1.镜像: 镜像可以认为是云服务器的操作系统,选择什么镜像云服务器就安装对应的操作系统。云服务器操作系统主要分为两大类,即Linux和Windows. 本次说明在linux操作系统下进行项目的部署, 那么在选择镜像的时可以选择Linux镜…

linux系统中利用QT实现串口通信的方法

大家好,今天主要和大家分享一下,如何使用QT中的串口通信方法。 目录 第一:资源简介 第二:应用实例的具体实现 第三:程序运行效果 第一:资源简介 在开发板的资源中出厂系统中,默认已经配置了两…

ASP.NET Core 3.1系列(27)——Autofac使用JSON、XML配置文件

1、前言 很多IoC框架都支持以配置文件的形式实现接口和类的注册,Autofac当然也不例外。本文就来介绍一下如何利用JSON、XML等配置文件来实现接口和类的注册。 2、定义接口和类 这里搭建了一个简单的分层项目,如下图所示: Repository层代码…

Verilog HDL

一、基础语法 1. 基础知识 (1)逻辑值 逻辑0:低电平。 逻辑1:高电平。 逻辑X:未知,可能是高电平,也可能是低电平。 逻辑Z:高阻态,外部没有激励信号,是一…

读书笔记《深度学习与图像识别原理与实践 大白话讲解对小白易懂》2022-8-5

开始 目录前言1. 常见深度学习框架2. 图像分类算法2.1 传统类2.2 机器学习2.2.1 人工神经网络(神经元)2.2.2 卷积神经网络3. 目标检测算法3.1 分类定位(单目标)3.2 分类定位(多目标,目标检测)3.…

近端串扰NEXT和远端串扰的ADS仿真

目录 近端串扰NEXT和远端串扰FEXT 串扰仿真原理图 NEXT特征 减少NEXT的措施 FEXT特征 减少FEXT的措施 本文记录近阶段对近端串扰和远端串扰概念的理解。 经验法则:最大可容许串扰大约是信号摆幅的5%。 近端串扰NEXT和远端串扰FEXT 静态线上的靠近驱动源的一端…

CTF中常用的http知识点总结

目录 前提知识 请求头大全 响应头大全 请求方法大全 常见考点 从某ip访问 从某网站跳转 身份为admin才可以访问 从某某浏览器访问 靶场练习 [极客大挑战 2019]Http Become A Member 前提知识 请求头大全 Header解释示例Accept指定客户端可以接收的内容类型Accep…

逆向分析资料汇总

商务合作 2023年招聘 ​安全业务和软件业务(商务合作) 移动端漏洞或隐私合规检测 APP常见漏洞扫描器 ​移动端APP隐私合规检测 2023年逆向分析资料汇总 移动端漏洞/安全检测与隐私合规解决方案 Frida逆向分析基础 APP基于Frida脱壳 frida hook so导出或未导出函数的方法…

【写作能力提升】写作小白需要避免的五个写作误区和灵魂五问

“ 【写作能力提升】系列文章: 为什么建议你一定要学会写作? 手把手教你快速搞定4个职场写作场景 5种搭建⽂章架构的⽅法”免费赠送! ”一、前言 Hello,我是小木箱,今天主要分享的内容是: 写作小白需要避免的五个写作误区和灵魂五问。 二、 …

E. The Human Equation(前缀和与差分数组)

嘤,总算过了 题目大意:可以从一个序列中按照顺序(可间断)选出一堆数,选出的这些数可以做以下操作: 奇数位置+1+1+1,偶数位置−1- 1−1偶数位置+1…

微信小程序项目实例——食堂吃哪个

微信小程序项目实例——食堂吃哪个 文章目录微信小程序项目实例——食堂吃哪个一、项目展示二、操作流程和核心代码三、效果展示文末项目代码见文字底部,点赞关注有惊喜 一、项目展示 这是一款娱乐性的小程序 目的是为了解决大学生吃饭的选择困难症 用户可以选择不…

51单片机的特殊功能寄存器(SFR)

阅读前提醒: 文中提到的8051指的是8051微控制器,即51单片机 在上一篇文章51单片机的存储结构中,提到8051微控制器的RAM被划分为通用寄存器、按位寻址寄存器、寄存器组、以及特殊功能寄存器。 这里讲一下特殊功能寄存器(SFR&…

五金制造业ERP如何解决企业销售管理难题?

销售管理是五金制造企业管理中非常重要的一个环节,它决定着企业发展的提速和效益的提升。那么企业要如何才能做好销售管理呢?在这里五金制造业ERP系统就起到了重要作用。五金制造业常见的销售管理难题及解决方法:销售插单改单严重&#xff0c…

在不同环境下 Docker 的安装部署

本篇内容主要介绍了:Docker:不同环境下的安装部署,包括,Docker 在 Centos7 下的安装、Docker 在 MacOS 下的安装、Docker 在 Windows 下的安装、以及 Docker 服务相关基础命令! 文章目录一、Docker 在 Centos7 下的安装…

使用Redhat OpenStack发放云主机

云管理员操作创建项目登录到OpenStack主界面,使用admin账户登录,创建项目虚拟内核:表明此项目可以使用的vCPU的数量实例:表明该项目最多可以运行的虚拟机数量注入的文件:表明最多可以向此数据中心存多少文件已注入文件…

react基础Day03-生命周期render props模式高阶组件原理揭秘

组件生命周期(★★★) 目标 说出组件生命周期对应的钩子函数钩子函数调用的时机 概述 意义:组件的生命周期有助于理解组件的运行方式,完成更复杂的组件功能、分析组件错误原因等 组件的生命周期: 组件从被创建到挂…

JVM学习(二):JVM监控及诊断工具-命令行篇

一、概述性能诊断是软件工程师在日常工作中需要经常面对和解决的问题,在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益。Java 作为最流行的编程语言之一,其应用性能诊断一直受到业界广泛关注。可能造成Java应用出现性能问题的因…