个人博客地址:Python日志库:Loguru | 一张假钞的真实世界
Loguru 是一个旨在为 Python 带来愉快的日志记录的库。使用 Loguru,没有理由不从一开始就使用日志记录,这就像从 Loguru 导入日志一样简单 from loguru import logger
。此外,这个库通过添加一系列有用的功能来解决使用标准日志记录库的痛苦。在应用程序中使用日志应该是自动的,Loguru 试图使其既令人愉快又强大。
安装
pip install loguru
特性
开箱即用
Loguru 的主要概念是有且只需要一个 Logger。为了方便起见,它预先配置从输出到 stderr 开始(但是这是完全可配置的)。
from loguru import logger
logger.debug("That's it, beautiful and simple logging!")
Logger 只是一个将日志消息分发给已配置的处理程序的接口。
无处理程序、无格式化、无过滤器:一个函数来规定所有
如何添加处理程序? 如何设置日志格式? 如何过滤消息? 如何设置级别?答案是:add()
函数。
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO")
此函数用来注册使用 record dict 来管理 log messages 上下文的 sinks。sink 可以有多种形式:一个简单的函数、一个字符串路径、一个类似文件的对象、一个协程函数或一个内置的 Handler。
注意,还可以通过使用在添加处理程序时返回的标识符来 remove()
以前添加的处理程序。如果希望取代默认的 stderr
处理程序,这尤其有用:只需调用 logger.remove()
来重新开始。
更容易的旋转/保留/压缩日志文件
如果将记录的消息发送到文件,只需使用字符串路径作为接收器。为了方便起见,它还可以自动计时:
logger.add("file_{time}.log")
如果需要旋转日志文件,或者删除较旧的日志文件,或者在关闭时压缩日志文件,也是很容易配置的。
logger.add("file_1.log", rotation="500 MB") # Automatically rotate too big file
logger.add("file_2.log", rotation="12:00") # New file is created each day at noon
logger.add("file_3.log", rotation="1 week") # Once the file is too old, it's rotated
logger.add("file_X.log", retention="10 days") # Cleanup after some time
logger.add("file_Y.