python日志处理模块讲解-loguru

说明:

本篇文章主要讲的是python日志模块loguru详解,感兴趣的同学赶快来看一看吧。

背景:

在部署一些定时运行或者长期运行的任务时,为了留存一些导致程序出现异常或错误的信息,通常会采用日志的方式来进行记录这些信息。python内置的logging标准库博主是没用过,今天给大家介绍loguruloguru 库的使用可以说是十分简单,希望通过本文大家再也不用通过print来排查代码了。

安装:

pip install loguru

如果安装速度太慢,也可以换下载源。

pip install loguru -i https://pypi.tuna.tsinghua.edu.cn/simple

本机安装后查看如下:

python日志处理模块讲解-loguru_第1张图片

查看内置模块如下:

python日志处理模块讲解-loguru_第2张图片

使用:

# 导入模块
from loguru import logger
# 信息查看
logger.debug("debug message")
logger.info("info level message")
logger.warning("warning level message")
logger.critical("critical level message")

 结果显示:

 从这个可以看出,logger.debug、logger.info、logger.warning、logger.critical不仅可以代替print,还为输出的日志信息带上了不同的颜色样式,使得结果更加美观。

配置:

使用基本的add() 方法就可以对logger 进行简单的配置。

logger.add("runtime_{time}.log", rotation="500 MB")    # 文件过大于500M就会重新生成一个文件
logger.add("runtime_{time}.log", rotation="00:00")     # 每天0点创建新文件
logger.add("runtime_{time}.log", rotation="1 week")    # 文件每过一周就会创建新文件
logger.add("test_4.log", retention="5 days")           # 只保留最近五天的日志文件
logger.add("test_5.log", compression="zip")    # 以zip格式对日志进行保存

其中time为占位符:可以自动生成时间,生成对应文件名包含时间的 log 文件。

 异常追溯:

当遇到错误是,如果在打印出log的时候没有配置 Traceback 的输出,很有可能无法追踪错误。loguru提供了装饰器@logger.catch()就可以直接进行 Traceback 的记录。
建议在程序开始运行之前使用add()方法新建一个运行日志,这样所有的日志都会被记录到log之中。

from loguru import logger

@logger.catch()
def test():
    return 1/0

if __name__ == '__main__':
    logger.add("test.log", retention="5 days")
    test()

python日志处理模块讲解-loguru_第3张图片

demo:

# 创建日志
from loguru import logger

logger.add("./log_2021-3-28.log",rotation="500MB", encoding="utf-8", enqueue=True, retention="10 days")

logger.info('This is info information')

# 写入日志
import platform
from loguru import logger

rounded_value = round(0.345, 2)

trace= logger.add('2021-3-28.log')

logger.info('If you are using Python {version}, prefer {feature} of course!', version=platform.python_version(), feature='f-strings')
'''
在当前路径下按照日期生成日志文件,如果要写入多个数据,可以把要写入的内容转成列表写入
'''from loguru import logger
# log档位置及格式
log_path = './'
logger.remove(handler_id=None)
logger.add(log_path + '/{time:YYYY-MM-DD}.log', rotation='00:00', retention='10 days')
a=6
logger.info(f'Receive and save {a}.jpg successfully')

 

 总结:

本文介绍了关于loguru的常用方法,使用loguru 库无疑还是很香的,毕竟别人已经为我们一些日常的通用性需求提供了封装好的解决方案,无论是在学习还是在使用的成本上,无疑还是比较小的。

你可能感兴趣的:(python,python,loguru,日志处理,log,模块)