loguru的简单使用

详细使用:Table of contents — loguru documentation

【1】日志的级别

  • 日志级别默认分为6种
    • 1、NOTSET (0)
    • 2、DEBUG  (1)
    • 3、INFO  (2)
    • 4、WARNING  (3)
    • 5、ERROR    (4)
    • 6、CRITICAL   (5)

'''logging 执行时输出大于等于设置的日志级别的日志信息,如设置日志级别是 INFO,则 INFO、WARNING、ERROR、CRITICAL 级别的日志都会输出。'''

【2】安装loguru

loguru仅支持python 3.5及以上的版本,使用pip指令安装即可

安装的命令:

        

pip install loguru

【3】loguru的简单使用

在 loguru 中有且仅有一个对象:logger,因此使用时,只需要导入logger即可

        

from loguru import logger




# 代码演示:
    	from loguru import logger
		logger.debug('今天天气不错')

【4】创建日志,并将日志写入日志文件

from loguru import logger

    logger.add('文件名')


    # 例:logger.add('index.log')

【5】add()/remove()

add() --------- 自定义日志级别,自定义日志格式,保存日志到文件

  

创建日志文件的时候,可以通过添加占位符的方式,添加文件的日期


remove() --------- 删除我们添加的配置

【6】add()语句的常用参数

        【6.1】rotation参数

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')

        【6.2】retention 指定日志保留时长

通过配置retention参数,可以指定日志的保留时长:

        

logger.add("file_X.log", retention="10 days")

通过上面的配置,就可以指定日志最多保留10天,每隔10天之后就会清理旧的日志,这样就不会造成内存浪费。

        【6.3】compression 配置文件压缩格式

通过配置compression参数可以指定日志文件的压缩格式:

        

logger.add("file_Y.log", compression="zip")

'''
通过上面的配置,可以指定日志文件的压缩格式为zip格式,可以节省存储空间。
'''

        【6.4】字符串格式化

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!

        【6.4】异常捕获

                方式一:catch装饰器 方法


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进行装饰,这样,当该函数出现异常时,就会打印出异常日志信息

'''

结果:

        loguru的简单使用_第1张图片

                方式二:exception 方法


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)

结果显示:

        loguru的简单使用_第2张图片

你可能感兴趣的:(python,开发语言)