­

Django实战-日志邮件通知

  • 2019 年 10 月 6 日
  • 筆記

Django实战-分析日志

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

前一小节的日志分析任务中,将访问请求的信息按照指定格式存入 log 文件,在分析log 日志的请求次数、最大值、最小值以及平均值。线上发生错误时,需要及时去发现,可以使用django框架自带的错误日志发送邮件。

一、日志分析任务

二、配置邮件

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'  EMAIL_HOST = 'smtp.qq.com'  # EMAIL_PORT = 25  # EMAIL_USE_TLS = False  # 加密  EMAIL_PORT = 465  EMAIL_HOST_USER = '**********@qq.com'  # 填写授权码  EMAIL_HOST_PASSWORD = '*********'  # 开启 TLS  EMAIL_USE_TLS = True  EMAIL_FROM = '*********@qq.com'

三、发送邮件

def report_by_mail():      logger.info("Begin statistics data.")      content = statistics()      # 换行符拆分      content = "rn".join(content)      logger.info("End statistics data.")      receivers = ["**********@qq.com"]      # 说明、内容编码      msg = MIMEText(content, "plain", "utf-8")      msg["FROM"] = "【 Django Backend】"      msg["Subject"] = "【Django Service Performance Monitor】"      server = smtplib.SMTP_SSL(settings.EMAIL_HOST, settings.EMAIL_PORT)      server.set_debuglevel(1)      server.login(settings.EMAIL_HOST_USER, settings.EMAIL_HOST_PASSWORD)      server.sendmail(settings.EMAIL_FROM, receivers, msg.as_string())      server.close()      logger.info("Send monitor Email success.")
if __name__ == "__main__":      report_by_mail()