在 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