详细使用:Table of contents — loguru documentation
'''logging 执行时输出大于等于设置的日志级别的日志信息,如设置日志级别是 INFO,则 INFO、WARNING、ERROR、CRITICAL 级别的日志都会输出。'''
loguru仅支持python 3.5及以上的版本,使用pip指令安装即可
安装的命令:
pip install loguru
在 loguru 中有且仅有一个对象:logger,因此使用时,只需要导入logger即可
from loguru import logger # 代码演示: from loguru import logger logger.debug('今天天气不错')
from loguru import logger logger.add('文件名') # 例:logger.add('index.log')
add() --------- 自定义日志级别,自定义日志格式,保存日志到文件
创建日志文件的时候,可以通过添加占位符的方式,添加文件的日期
remove() --------- 删除我们添加的配置
rotation参数:
可以是实现按照固定时间创建新的日志文件
1、设置每天0点创建一个新的log文件
logger.add('runtime_{time}.log',rotation='00.00')
2、设置超过 500 MB 新创建一个 log 文件:
logger.add('runtime_{time}.log', rotation="500 MB")
3、设置每隔一个周新创建一个 log 文件:
logger.add('runtime_{time}.log', rotation='1 week')
通过配置retention参数,可以指定日志的保留时长:
logger.add("file_X.log", retention="10 days")
通过上面的配置,就可以指定日志最多保留10天,每隔10天之后就会清理旧的日志,这样就不会造成内存浪费。
通过配置compression参数可以指定日志文件的压缩格式:
logger.add("file_Y.log", compression="zip") ''' 通过上面的配置,可以指定日志文件的压缩格式为zip格式,可以节省存储空间。 '''
Loguru 在输出 log 的时候还提供了非常友好的字符串格式化功能,相当于
str.format()
:
logger.info('If you are using Python {}, prefer {feature} of course!', 3.6, feature='f-strings')
输出结果:
2021-10-19 14:59:06.412 | INFO | __main__:
:3 - If you are using Python 3.6, prefer f-strings of course!
from loguru import logger logger.add("runtime.log") @logger.catch def my_function(x, y, z): return 1 / (x + y + z) # An error? It's caught anyway! my_function(0, 0, 0) ''' 上面的代码中,通过catch装饰器对函数my_function进行装饰,这样,当该函数出现异常时,就会打印出异常日志信息 '''
结果:
from loguru import logger logger.add("runtime.log") def my_function1(x, y, z): try: return 1 / (x + y + z) except ZeroDivisionError: logger.exception("What?!") my_function1(0, 0, 0)
结果显示: