前言:
每次调试输出要使用print(),是否每次想为程序配置一个日志记录器,
官网地址:https://pypi.org/project/loguru/
1 安装loguru
pip install loguru
2 直接使用
from loguru import logger
logger.debug(“这是一条debug日志”)
3 输出到文件:
from loguru import logger
logger.add(“file_{time}.log”,encoding=“utf-8”)
logger.debug(“这是一条debug日志”)
logger.info(“这是一条info日志”)
4 loguru保留日志文件
coding:utf-8
from loguru import logger
logger.add(“interface_log_{time}.log”, rotation=“500MB”, encoding=“utf-8”, enqueue=True, compression=“zip”, retention=“10 days”)
logger.debug(“这是一条debug日志”)
logger.info(“这是一条info日志”)
包含知识点
•第一个参数是保存日志信息的文件路径,像我写的后缀多了个 {time} ,就是获取当前时间节点,这样就会自动创建新的日志;这个time应该是库里自带的变量,如果你想自己定义time也可以的哦,具体可以看看下面封装类的实现形式!
•当你需要输出中文日志的时候,请加上 encoding=“utf-8” ,避免出现乱码
•enqueue=True 代表异步写入,官方的大概意思是:在多进程同时往日志文件写日志的时候使用队列达到异步功效
•rotation 可以理解成日志的创建时机,可以有多种写法 ◦rotation=“500 MB” :当日志文件达到500MB时就会重新生成一个文件
◦rotation=“12:00” :每天12点就会创建新的文件、
◦rotation=“1 week” :每隔一周创建一个log
•retention 配置日志的最长保留时间,官方例子: “1 week, 3 days”、“2 months”
•compression 配置文件的压缩格式,可以配置常见的格式 zip、tar、gz、tar.gz 等
5 简单debug 一个函数文件:
函数文件定义一个变量,通过日志打印出来:
参考链接:https://www.yisu.com/zixun/149614.html
https://www.zhangshengrong.com/p/OQNzrqreNR/
https://cuiyonghua.blog.csdn.net/article/details/107498535?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2-107498535-blog-107863671.pc_relevant_scanpaymentv1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2-107498535-blog-107863671.pc_relevant_scanpaymentv1&utm_relevant_index=5
6 异常值追溯
在很多情况下,如果遇到运行错误,而我们在打印输出 log 的时候万一不小心没有配置好 Traceback 的输出,很有可能我们就没法追踪错误所在了。
但用了 loguru 之后,我们用它提供的装饰器就可以直接进行 Traceback 的记录,类似这样的配置即可:
我们做个测试,我们在调用时三个参数都传入 0,直接引发除以 0 的错误,看看会出现什么情况:
运行完毕之后,可以发现 log 里面就出现了 Traceback 信息,而且给我们输出了当时的变量值,结果如下:
备注:
上面的代码中,通过catch装饰器对函数my_function进行装饰,这样,当该函数出现异常时,就会打印出异常日志信息,如上截图所示:在日志信息中,不仅指明了异常出现的地方,而且把参数的值也记录下来了