最近发现python有个模块叫loguru,比自带的logging使用方便流畅的多了,下面就简单介绍下:
安装loguru:
pip install loguru
简单实例:
from loguru import logger
logger.debug("hello world!")
返回结果:
看到上面实例,你或许疑惑怎么没有Handler配置,filter过滤器等等。对此答案之一就是add().
add方法
参数简单介绍:
sink参数:可以是日志文件,也可以输出到终端,协程函数等等
level参数:日志等级
format参数:格式化日志的记录
serialize参数:将返回日志数据转换为json格式数据
enqueue参数:异步写入
接下来我们对上面参数简单的使用下:
from loguru import logger
logger.add(
sink="demo.log",
format="{time} {level} {message}",
filter="error",
level="DEBUG",
serialize=True,
enqueue=True,
)
@logger.catch
def func(a, b):
return a / b
@logger.catch
def test(c):
func(5, c)
test(0)
上面这个例子中:异步写入json数据demo.log日志文件,内容有时间+等级+信息,并且判断写入信息中是否存在error,最低等级是debug。还有一点在使用日志模块时也可以想我一样直接使用装饰器。比较直接进行 Traceback 的记录,这样更能准确的找到问题
add方法对日志文件管理:
logger.add("demo1.log", rotation="500 MB") # 文件过大就会重新生成一个文件
logger.add("demo2.log", rotation="01:00") # 每天1点创建新文件
logger.add("demo3.log", rotation="2 week") # 文件时间过长就会创建新文件
logger.add("demo4.log", retention="7 days") # 一礼拜后会清空
logger.add("demo5.log", compression="zip") # 保存zip格式
其实loguru使用还不止这些,loguru可以自定level,根据需要进行结构化日志记录,更好的日期时间处理等等。想详细的了解可以去官方文档看看:loguru官方文档
另外我这个博客主要是给自己做笔记,所以有想更流畅的入门上手可以去崔庆才博客看看