目录
- 1.Loguru模块的基本概念
- 2.Loguru模块的安装与特性编程客栈
- 2.1 安装
- 2.2 功能特性
- 3.Loguru模块的功能详解
- 1.开箱即用
- 2.定义日志输出时的行为
1.Loguru模块的基本概念
python logging模块定义了为应用程序和库实现灵活的事件日志记录的函数和类。程序开发过程中,很多程序都有记录日志的需求,并且日志包含的信息有正常的程序访问日志还可能有错误、告警等信息输出,Python的logging模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志记录提供了一组便利功能,用于简单的日志记录用法。
使用Python Logging模块的主要好处是所有的Pyhon模块都可以参与日志记录,logging模块提供了大量具有灵活性的功能。
为什么要使用loguru?
简单且方便的帮助我们输出需要的日志信息
使用 Python 来写程序或者脚本的话,常常遇到的问题就是需要对日志进行删除.一方面可以帮助我们在程序出问题的时候排除问题,二来可以帮助我们记录需要关注的信息
但是,使用自带自带的 logging 模块的话,则需要我们进行不同的初始化等相关工作。对应不熟悉该模块的同学来说,还是有些费劲的,比如需要http://www.devze.com配置 Handler/Formatter 等。 随着业务的复杂度提升, 对日志收集有着更高的要求, 例如: 日志分类, 文件存储, 异步写入, 自定义类型等等lojsguru 是一个 Python 简易且强大的第三方日志记录库,该库旨在通过添加一系列有用的功能来解决标准记录器的注意事项,从而减少 Python 日志记录的痛苦
2.Loguru模块的安装与特性
2.1 安装
[root@localhost ~]# pip3 install loguru # 安装模块 [root@localhost ~]# pip3 show loguru # 查看模块相关信息
2.2 功能特性
- 开箱即用,无需准备
- 无需初始化,导入函数即可使用
- 更容易的文件日志记录与转存/保留/压缩方式
- 更优雅的字符串格式化输出
- 可以在线程或主线程中捕获异常
- 可以设置不同级别的日志记录样式
- 支持异步,且线程和多进程安全
- 支持惰性计算
- 适用于脚本和库
- 完全兼容标准日志记录
- 更好的日期时间处理
3.Loguru模块的功能详解
1.开箱即用
# ====================== # -*-coding: Utf-8 -*- # ====================== from loguru import logger logger.debug('debug log')
上面的日志记录语句,默认向stderr(控制台)打印了一条输出语句,输出结果如下所示
可以看出,loguru默认配置了一套日志输出格式,有时间、级别、模块名、行号以及日志信息,不需要手动创建 logger,直接使用即可,另外其输出还是彩色的,看起来会更加友好。所以我们不需要提前配置什么,直接用就可以
2.定义日志输出时的行为
要达到logging中的Handler(日志输出地)、Formattetr(日志输出格式)、Filter(过滤输出python的日志数据的效果,以及定义输出日志级别等等,全都可以在logger.add()这一个函数中完成
# ====================== # -*-coding: Utf-8 -*- # ====================== from loguru import logger import os # 当前文件的目录路径 dir_path = os.path.abspath(os.path.dirname(__file__)) # 日志路径 log_file_path = os.path.join(dir_path,'loguru.log') # 配置日志输出到文件,输出最低等级为info,格式自定义 logger.add(log_file_path,format="{time} {level} {message}",level="INFO") logger.debug('debug msg') logger.info('info msg') logger.warning('warning msg') logger.error('error msg')
日志文件的转存
# ====================== # -*-coding: Utf-8 -*- # ====================== from loguru import logger import os # 当前文件的目录路径 dir_path = os.path.abspath(os.path.dirname(__file__)) # 日志路径 log_file_path = os.path.join(dir_path,'loguru_{time:%Y-%m-%d}.log') # 配置日志输出到文件,输出最低等级为info,格式自定义 logger.add(log_file_path,format="{time} {level} {message}",level="INFO") logger.debug('debug msg') logger.info('info msg') logger.warning('warning msg') logger.error('error msg') # 通过配置rotaion参数,指定文件hCvYQSir转存的条件 logger.add(log_file_path,rotation="500MB") # 超过500MB自动分割文件 logger.add(log_file_path,rotation="12:00") # 每天固定时间定时创建文件 logger.add(log_file_path,rotation="1 week") # 每隔一段时间创建文件 # 通过配置retention参数,指定文件存储的条件 logger.add(log_file_path,retention="10 days") # 可以指定日志的保留时长 ,retention=“10 days” 每隔10天就会清理旧的日志,这样就不会造成内存的浪费 # 通过配置compression参数可以指定日志文件的压缩格式 logger.add(log_file_path,compression="gz")
有add()就有remove(),add()函数定义了日志输出行为后,会返回一个int类型的id,remove()函数通过这个id就可以删除之前在add()函数中所定义的东西
# ====================== # -*-coding: Utf-8 -*- # ====================== from loguru import logger import os # 当前文件的目录路径 dir_path = os.path.abspath(os.path.dirname(__file__)) # 日志路径 log_file_path = os.path.join(dir_path,'loguru_{time:%Y-%m-%d}.log') # 配置日志输出到文件,输出最低等级为info,格式自定义 logger.add(log_file_path,format="{time} {level} {message}",level="INFO") # 删除刚才在add()自定义输出 logger.remove() logger.debug('debug msg') logger.info('info msg') logger.warning('warning msg') logger.error('error msg')
文件的日志内容是空白的
remove(handler_id=None)
: 会删除之前所有add()中自定义的东西,包括Loguru的默认配置
到此这篇关于Python中Loguru模块的具体使用的文章就介绍到这了,更多相关Python Loguru模块内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论