转载来源:微信公众号:程序员学长 https://mp.weixin.qq.com/s/csxPONEaUbTdoRMd9opuMw
大家好,我是小寒。
今天给大家分享一个神奇的 python 库,loguru
https://github.com/Delgan/loguru
Loguru 是一个旨在为 Python 带来愉快的日志记录的库,它可以完全增强你的日志记录体验,并且非常易于使用。
初体验
库的安装
安装 Loguru 也非常简单,可以直接使用 pip 进行安装。
pip install loguru
在 Loguru 中,如果需要将调试日志输出到终端,可以执行以下操作。
from loguru import logger
logger.debug("That's it, beautiful and simple logging!")
如果需要将日志输出到文件中,只需这样做。
from loguru import logger
logger.add("file_{time}.log")
logger.debug("That's it, beautiful and simple logging!")
这将在当前运行的文件夹中生成 file_current time.log 的日志文件。
滚动日志和压缩
使用 Loguru 你可以轻松实现滚动日志。
按时间滚动
比如要按时间滚动,只需要在 logger.add 参数中添加一个 rotation 参数即可。
from loguru import logger
logger.add("file_2.log", rotation="12:00") # Create new file at 12AM
logger.debug("That's it, beautiful and simple logging!")
这样,如果当前时间超过了这个设定的时间,就会生成一个新的日志文件。如果没有,请使用原始日志文件。
按大小滚动
除了按时间滚动日志外,Loguru 还可以按日志大小滚动。
from loguru import logger
logger.add("file_1.log", rotation="1 MB")
logger.debug("That's it, beautiful and simple logging!")
这样,一旦日志文件大小超过1MB,就会生成一个新的日志文件。
压缩日志
如果你不想删除原来的日志文件,Loguru 还支持直接压缩日志。
from loguru import logger
logger.add("file_Y.log", compression="zip")
其它特性
定制颜色
Loguru 支持自定义颜色,如果你不喜欢它的默认颜色,你可以这样更改。
logger.add(sys.stdout, colorize=True, format="<green>{time}</green> <level>{message}</level>")
多进程安全
Loguru 默认是线程安全的,但它不是多进程安全的。
但如果你需要多进程/异步日志记录,它也支持,只需添加一个 enqueue 参数即可。
logger.add("somefile.log", enqueue=True)
回溯支持
对于日志来说,没有错误栈的日志是没有灵魂的。Loguru 允许你显示整个堆栈信息以帮助你发现问题(包括变量)。例如:
def func(a, b):
return a / b
def nested(c):
try:
func(5, c)
except ZeroDivisionError:
logger.exception("What?!")
nested(0)
电子邮件提醒
Loguru 可以与强大的电子邮件通知模块结合使用,以便在程序意外失败时接收电子邮件,或发送许多其他类型的通知。
import notifiers
params = {
"username": "test@gmail.com",
"password": "abc123",
"to": "test@gmail.com"
}
# Initialize email
notifier = notifiers.get_notifier("gmail")
notifier.notify(message="The application is running!", **params)
# Email alert for error
from notifiers.logging import NotificationHandler
handler = NotificationHandler("gmail", defaults=params)
logger.add(handler, level="ERROR")
这样配置后,每次产生 Error 日志时,程序都会自动向你的邮箱发送警报,真是方便。除了这些功能之外,Loguru 还支持与 Python 原生 Logging 模块的兼容,你可以将原始标准记录器记录的所有信息转移到 Loguru 中。你还可以基于 Loguru 自定义新的日志级别,并自定义你喜欢的结构化数据。
标签:loguru,Loguru,python,add,import,日志,logger,神奇 From: https://www.cnblogs.com/tynam/p/17756472.html