从脚本中发送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.') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |