Python日志-使用loguru进行日志管理

最近发现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官方文档
另外我这个博客主要是给自己做笔记,所以有想更流畅的入门上手可以去崔庆才博客看看

猜你喜欢

转载自blog.csdn.net/lin_keys/article/details/103747302