从脚本中发送python控制台输出作为电子邮件的最佳方法是什么?
发布时间:2020-12-20 11:46:04 所属栏目:Python 来源:网络整理
导读:我有一个 python脚本,可以执行多项操作并在控制台上打印日志.现在,我还没有使用任何日志记录机制(我只是使用print打印所需的消息)如何获取所有打印并将其作为电子邮件发送出去?我是否必须将其全部保存在变量中并将其传递给smtplib?或者,还有更好的方法?
|
我有一个
python脚本,可以执行多项操作并在控制台上打印日志.现在,我还没有使用任何日志记录机制(我只是使用print打印所需的消息)如何获取所有打印并将其作为电子邮件发送出去?我是否必须将其全部保存在变量中并将其传递给smtplib?或者,还有更好的方法?
示例代码 for job in fetch.getJobStats():
if job['userName']+"_"+job['tenantId'] in summaryTotal:
summary = summaryTotal[job['userName']+"_"+job['tenantId']]
else:
summary = Summary(job['userName'],job['tenantId'])
summaryTotal[summary.user+"_"+summary.tenant] = summary
summary.jobs.append(Job(job['jobId'],job['jobStatus'],int(job['fileSize'])))
totalBw += int(job['fileSize'])
print("Cumulative Size: " + str(totalBw))
for summaryKey in summaryTotal.keys():
summary = summaryTotal[summaryKey]
inprogress = []
failed = []
completed = []
cancelled = []
totalBwTenantUser = 0
for job in summary.jobs:
totalBwTenantUser += job.filesize
if job.status == "JOBCANCELLED":
cancelled.append(job.id)
elif job.status == "JOBCOMPLETED":
completed.append(job.id)
elif job.status == "INPROGRESS":
completed.append(job.id)
elif job.status == "JOBFAILED":
completed.append(job.id)
print("-" * 50)
print("Tenant: " + summary.tenant)
print("User : " + summary.user)
print("Size : " + str(totalBwTenantUser))
print("n")
print("INPROGRESS: " + str(inprogress))
print("COMPLETED : " + str(completed))
print("CANCELLED : " + str(cancelled))
print("FAILED : " + str(failed))
print("-" * 50)
所有的印刷品都应该通过电子邮件拍摄. 解决方法
你真的应该使用Python附带的优秀
logging system.
将它与 import logging
from mailinglogger.SummarisingLogger import SummarisingLogger
handler = SummarisingLogger('from@example.com',('to@example.com',),subject='[LOGS] %s (hostname)s',mailhost='smtp.example.com')
logging.basicConfig(format='%(asctime)s %(message)s',datefmt='%m/%d/%Y %I:%M:%S %p',level=logging.INFO)
logger = logging.getLogger()
logger.addHandler(handler)
logging.info('Sent by email.')
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
