从脚本中发送python控制台输出作为电子邮件的最佳方法是什么?

从脚本中发送python控制台输出作为电子邮件的最佳方法是什么?,第1张

概述我有一个 python脚本,可以执行多项 *** 作并在控制台上打印日志.现在,我还没有使用任何日志记录机制(我只是使用print打印所需的消息)如何获取所有打印并将其作为电子邮件发送出去?我是否必须将其全部保存在变量中并将其传递给smtplib?或者,还有更好的方法? 示例代码 for job in fetch.getJobStats(): if job['userName']+"_"+ 我有一个 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.

将它与mailinglogger处理程序相结合,您就拥有了所需的一切:

import loggingfrom mailinglogger.SummarisingLogger import SummarisingLoggerhandler = 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.')
总结

以上是内存溢出为你收集整理的从脚本中发送python控制台输出作为电子邮件的最佳方法是什么?全部内容,希望文章能够帮你解决从脚本中发送python控制台输出作为电子邮件的最佳方法是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1193480.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存