python日志模块loguru详解
作者:JulyLi2019 发布时间:2023-10-23 20:50:08
标签:python,loguru
前言
在部署一些定时运行或者长期运行的任务时,为了留存一些导致程序出现异常或错误的信息,通常会才用日志的方式来进行记录这些信息。python内置的logging
标准库博主是没用过,今天给大家介绍loguru
,loguru
库的使用可以说是十分简单,希望通过本文大家再也不用通过print来排查代码了。
使用步骤
安装库
pip install loguru
简单使用方法
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()
来源:https://blog.csdn.net/JulyLi2019/article/details/122931683


猜你喜欢
- 从百度查到在django中,使用post方法时,需要先生成随机码,以防止CSRF(Cross-site request forgery)跨站
- Base64编码Base64编码将二进制数据转换为文本格式,通过通信通道传递,用户可以安全地处理文本. Base64也称为隐私增强电子邮件(
- 一、 Scott用户下的表结构SCOTT。是在Oracle数据库中,一个示例用户的名称。其作用是为初学者提供一些简单的应用示例,不过其默认是
- 创建与打开站点启动FrontPage XP,选择菜单“文件/新建”,再单击“网页或站点”命令选项。在“新建网页或站点”任务窗格
- 总的来说视觉设计是一个很大的范畴,囊括了我们身边很多产品的再创作设计,比如工业产品设计,广告设计,新媒体设计,服饰设计,还有我们这里要讨论的
- 去除字符串左右两端的空格,在vbscript里面可以轻松地使用 trim、ltrim 或 rtrim,但在js
- 引言在做项目的时候难免会遇到很多奇葩解析字符串的需求,简单的字符串通过内置方法就能解析出来,如果遇到复杂的就不好办了,那我们如何解决复杂字符
- 我使用的是anaconda安装的环境,其中有一个是h5py,自动安装的是2.7.0的版本,这个版本会导致保存模型时python奔溃。cond
- 有时候网站会收到一些投稿文章,或者也会转载别人的文章,新创建一个用户又有些麻烦,但在作者名称那里显示自己的名字,总不是那么和谐。今天倡萌推荐
- 前言在任何编程语言中,代码需要根据不同的条件在给定的输入中做不同的决定和执行相应的动作。例如,在一个游戏中,如果玩家生命点为0,游戏结束。在
- 一、新建项目:SqlSugarDemo<ItemGroup> <PackageReference
- 效果图实例代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit
- 在用户体验这个行业,经常会听到,可用性,可访问性这样专业的名词,但是,事实上在很多产品实现过程里都忽略了这一点!WHY?举个很简单的例子,用
- binlog二进制日志对于mysql数据库的重要性有多大,在此就不多说了。下面根据本人的日常操作经历,并结合网上参考资料,对binlog日志
- 想要使用xpath来解析html内容, PHP自带两个对象DOMDocument,DOMXpath,其中初始化 loadHtml一般都会报很
- 1.静态方法(staticmethod)静态方法:@staticmethod也是一个类方法,是可以直接类调用的。个人认为的使用场景是:只要要
- 计算机为数组分配一段连续的内存,从而支持对数组随机访问;由于项的地址在编号上是连续的,数组某一项的地址可以通过将两个值相加得出,即将数组的基
- 1.在vue项目根目录下新建vue.config.js(不是在src下面)vue.config.js配置文件:module.exports
- 库的管理1、库的管理创建、修改、删除1、库的创建CREATE DATABASE UF NOT EXISTS books;2、库的修改库名一般
- 本文实例讲述了Python基于PyGraphics包实现图片截取功能的方法。分享给大家供大家参考,具体如下:先安安装PyGraphics包