对 loguru 日志模块的错误日志自动发邮件

Posted 渔夫数据库笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对 loguru 日志模块的错误日志自动发邮件相关的知识,希望对你有一定的参考价值。

一:关于 loguru

    在 Python 中,一般情况下我们可能直接用自带的 logging 模块来记录日志。功能也算强大,但是在使用时我们需要配置一些 Handler、Formatter 来进行一些处理,比如把日志输出到不同的位置,或者设置一个不同的输出格式,或者设置日志分块和备份。
总体来说使用起来比较负责繁琐。有没有一种能够即开即用的日志模块呢? 还真有它叫 Loguru 。
Loguru 一个能彻底解放你的日志记录器。

Loguru即插即用,具备多种方式滚动日志、自动压缩日志文件、定时删除等功能。除此之外,多线程安全、高亮日志、日志告警等功能也不在话下。下面简单介绍下它的使用

>>> from loguru import logger
>>> logger.add('/root/shao/testlog/time.log', colorize=True, format="time level thread name:function message", level="INFO", rotation="200 MB", retention='30 days', compression='zip')
1
>>> logger.info('开始记录日志')
2022-05-16 16:32:55.903 | INFO     | __main__:<module>:1 - 开始记录日志

关于 loguru 详细可参考:

loguru

二:在 loguru 记录error级别日志时,自动发邮件告警

from loguru import logger
import notifiers
from notifiers.logging import NotificationHandler

email = notifiers.get_notifier('email')

params = 
    "username": "xxxxxx", #邮件发送邮箱用户名
    "password": "xxxxxx",                   #邮件发送邮箱密码
    "tls": True,                              #是否启用tls(默认不启用)
    "from": "xxxxxx",     #发件地址
    "to": ["xxxxxxx", "xxxxx"],      #收件地址,可以执行多个收件地址
    "host": "smtp.partner.outlook.cn",        #邮件服务器地址
    "port": 587,                              #邮件服务器端口
    "subject": "日志模块错误告警测试"         #邮件主题

#发送一封邮件
#email.notify(message="这是一封测试邮件,请忽略", **params)




#发生Error日志时,自动发邮件进行警报

handler = NotificationHandler("email", defaults=params)
logger.add(handler, level="ERROR")
logger.add('/root/shao/testlog/time.log', colorize=True, format="time level thread name:function message", level="INFO", rotation="200 MB", retention='30 days', compression='zip')
#错误信息
error_message = "程序出错,报错信息如下:"
logger.error(error_message)

notifies 通知模块,支持多种通知方式,具体请见如下链接

notifiers 通知模块

以上是关于对 loguru 日志模块的错误日志自动发邮件的主要内容,如果未能解决你的问题,请参考以下文章

python+pytest接口自动化(13)-日志管理模块loguru简介

python+pytest接口自动化(13)-日志管理模块loguru简介

Python模块——loguru日志模块简单学习

python日志管理loguru模块实操

python日志管理loguru模块实操

python日志管理loguru模块实操