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()

Tags: