我想发送一封来自Python脚本中出现在控制台中的所有引发异常的电子邮件。例如,如果我正在使用的json-web服务已关闭并将错误消息记录到我的控制台;然后我想发送除了控制台中记录的任何其他错误。
最低级别;这是我遇到的一个例子。如果脚本失败,我想通过电子邮件发送所有相关错误,或者返回exit code 1
import json
import jsonpickle
import requests
import time
f2 = open('C:\Users\Administrator\Desktop\DetailView.json', 'r')
data2 = jsonpickle.encode(jsonpickle.decode(f2.read()) )
url2 = "HTTPERROR or ValueError prone URL that raises an exception"
headers2 = {'Content-type': 'text/plain', 'Accept': '/'}
r2 = requests.post(url2, data=data2, headers=headers2)
decoded2 = json.loads(r2.text)
Start = datetime.datetime.now()
ValueError: No JSON object could be decoded
答案 0 :(得分:0)
您想使用日志记录模块中提供的SMTP Handler。您可以在相关代码周围尝试除以阻止,每次抛出异常时,记录器都会发送电子邮件。
例如:
try:
{my code}
except Exception as e:
logger.error("My code threw an error", exc_info=True)
{handle exception}
您必须将SMTP处理程序添加到日志配置中:
[handler_smtpHandler]
class=logging.handlers.SMTPHandler
level=WARN
formatter=simpleFormatter
args=('localhost', 'ALERT@myemail.com', ['recipient@email.com'], "ERROR SUBJECT")