简介
loguru是一个开箱即用的python日志模块,相比于自带的logging模块更加的简单和方便
helloworld
相比于自带的logging模块,loguru可以直接使用,不需要做很多的配置,比如下面
from loguru import logger
logger.info("hello world")
默认就输出下面的格式
2022-05-11 14:16:24.659 | INFO | __main__:<module>:3 - hello world
当然你也可以配置日志输出的格式,级别,颜色,添加handle,过滤等,所有的操作都在一个add函数中处理
所以add函数在loguru中很重要,下面解释下loguru中add函数的一些参数
- sink sink是一个比较重要的参数,可以传入文件对象,也可以传入一个字符串,也就是文件路径,还可以传入logging的handler,这个就是负责接收格式化之后的日志,如果是文件的话就直接写入文件了
比如下面这个例子
from loguru import logger
import sys
logger.add(sys.stdout,level="ERROR")
logger.info("i am in stdout ")
logger.remove()
logger.add("log.txt")
logger.info("i am in txt")
然后下面是输出
[root@localhost loguru]# python3 -d main.py -d
2022-05-11 15:08:35.340 | INFO | __main__:<module>:6 - i am in stdout
[root@localhost loguru]# cat log.txt
2022-05-11 15:08:35.346 | INFO | __main__:<module>:9 - i am in txt
- level 当然你肯定也可以定义日志级别
- format 定义日志的格式
- filter 过滤器
- rotation 定义怎么切割日志比如5s切割一次日志
比如
logger.add("file-{time}.txt",level="ERROR",rotation="1MB")
文件大于1M的时候切割日志
或者
logger.add("file-{time}.txt",level="ERROR",rotation="00:00")
00:00点的时候切割日志
- compression 压缩,一般切割完成之后就需要压缩,比如
logger.add("file-{time}.txt",level="ERROR",rotation="1MB",compression="zip")
除了add函数,还有一个比较重要的函数是remove,remove就是移除之前添加的处理程序并且停止向sink发送日志
比如下面这个例子
from loguru import logger
import sys
logger.add(sys.stdout,level="ERROR")
logger.info("i am in stdout ")
logger.remove()
logger.add("log.txt")
logger.info("i am in txt")
欢迎关注我的博客www.bboy.app
Have Fun