Python3中超级好用的日志模块——Loguru模块使用详解
前言
日志是每一个程序员必须掌握的技能之一。对于优秀的 Python 程序员来说,优秀的日志框架更是必不可少。Python 标准库中自带的 logging 模块就是一个强大的例子,但是使用起来也有点复杂。在这篇文章里,我们会来探讨一个比 logging 更简单易用的日志框架——Loguru。
Loguru 不仅能在控制台中输出好看、易读的日志,同时还可以将日志输出到文件,支持邮件和 Slack 通知,可以自动切割日志文件,支持多个进程下日志写入的互斥,支持日志的定制化输出等等。要使用 Loguru,首先要安装该模块,使用如下命令:
pip install loguru
使用示例
下面通过两个例子来介绍如何使用 Loguru 模块进行日志记录:
import loguru
# 设置默认日志类型及对应的输出级别
loguru.logger.add("out.log", rotation="500 MB", compression="zip", level="INFO")
# 记录普通日志
loguru.logger.debug("Debug log message.")
loguru.logger.info("Info log message.")
loguru.logger.warning("Warning log message.")
loguru.logger.error("Error log message.")
loguru.logger.critical("Critical log message.")
# 记录带 context 的日志
loguru.logger.bind(user="test_user").info("User {user} logged in.")
在上述代码中,我们首先导入了 loguru 模块,然后使用 loguru.logger.add() 方法设置了默认的日志类型和对应的输出级别。这里默认的日志类型为文件类型,文件路径为当前目录下的 out.log,并设置了日志文件按大小切割,每 500MB 一个文件,压缩方式为 zip。输出级别为 INFO。
接下来,我们使用了五种不同的方法(debug、info、warning、error 和 critical)来记录不同级别的日志信息。除此之外,我们还使用了 loguru.logger.bind() 方法来记录带有上下文信息的日志。在记录上下文信息的时候,我们通过 {user} 占位符来代表变量,这样就可以对不同的用户进行日志的记录了。
第二个例子给出了如何将日志输出到控制台的示例:
import loguru
# 输出日志到控制台(默认输出级别为 INFO)
logger = loguru.logger
logger.add(sys.stdout, colorize=True)
# 记录不同级别的日志信息
logger.debug("Debug log message.")
logger.info("Info log message.")
logger.warning("Warning log message.")
logger.error("Error log message.")
logger.critical("Critical log message.")
在这个示例中,我们同样使用了 logger.add() 方法向控制台输出日志信息。需要注意的是,在这里我们将输出的目标改为了 sys.stdout,即标准输出。同时,我们还设置了 colorize=True,表示要将日志输出的信息进行颜色区分,方便用户区分日志的级别。
结语
本文简单介绍了 Loguru 日志框架的使用方法和两个基本示例。除了以上提到的功能外,Loguru 还支持多线程、支持对堆栈轨迹进行改进输出等等。Loguru 为我们日常的日志记录提供了很多便利,而且使用也非常简单。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3中超级好用的日志模块-loguru模块使用详解 - Python技术站