对 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 记录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 通知模块,支持多种通知方式,具体请见如下链接
以上是关于对 loguru 日志模块的错误日志自动发邮件的主要内容,如果未能解决你的问题,请参考以下文章
python+pytest接口自动化(13)-日志管理模块loguru简介