# -*- coding: utf-8 -*-
'''
发送错误日志
'''
import os
import smtplib
import time
import datetime
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
def send_mail(to_list, sub, content):  # to_list:收件人;sub:主题;content:邮件内容
  mail_host = "smtp.jd.com"  # 设置服务器
  mail_user = ""  # 用户名
  mail_pass = ""  # 口令
  mail_postfix = ""  # 发件箱的后缀
  me = "错误日志" + "<" + mail_user + "@" + mail_postfix + ">"  # 这里的hello可以任意设置,收到信后,将按照设置显示
  msg = MIMEMultipart()
  msg['Subject'= sub  # 设置主题
  msg['From'= me
  msg['To'= ";".join(to_list)
  # ---邮件正文---
  part = MIMEText(open(objectdir, 'r').read(),_charset='gb2312')  #将错误文件内容做为邮件正文内容
  msg.attach(part)
  # txt类型附件
  part = MIMEApplication(open(objectdir, 'rb').read())
  part.add_header('Content-Disposition''attachment', filename="error_log.txt")
  msg.attach(part)
  try:
    = smtplib.SMTP()
    s.connect(mail_host)  # 连接smtp服务器
    s.login(mail_user, mail_pass)  # 登陆服务器
    s.sendmail(me, to_list, msg.as_string())  # 发送邮件
    s.close()
    return True
  except Exception, e:
    print str(e)
    return False
#获取错误日志内容
def getContent(resouce, final):
  = open(resouce, 'rb')
  finalfile = open(final, 'wb')
  try:
    for line in f:
        if yes_date in line:
            if "ERROR" in line:  # 按行读取,如果该行包含“ERORR”字符串,则将该行写入目标文件
               finalfile.write(line)
  finally:
    f.close()
    finalfile.close()
# 获取昨天的时间,这块可以任意改成自己需要的时间
def get_yesterday_date():
  today = datetime.datetime.now()
  oneday = today - datetime.timedelta(days=1)
  yes_date = oneday.strftime("%Y-%m-%d")
  return yes_date
if __name__ == '__main__':
  sourcedir = "D:/catalina.out"  # 需要读取的源文件路径
  objectdir = "D:/error_log.txt"  # 存放的目标文件
  mailto_list = ["dfffg@qq.com"]#收件人邮箱,可以发送存放多个
  yes_date = get_yesterday_date()
  getContent(sourcedir, objectdir)
  if os.path.getsize(objectdir):
      if send_mail(mailto_list, "错误日志_"+yes_date,objectdir):
        print "发送成功"
      else:
        print "发送失败"
  else:
      print "无错误日志,未发送邮件"

python 获取错误日志,并发送邮件相关推荐

  1. PHP错误日志,解决不显示不记录日志文件等疑难杂症

    2019独角兽企业重金招聘Python工程师标准>>> PHP不显示错误日志,适用于 Ningx + php-fpm +PHP 以及 Apache +mod/cgi+ PHP 方式加 ...

  2. ios 打印 详细错误日志_【专家专栏】林相宇 | IOS错误日志抓取和分析

    原标题:[专家专栏]林相宇 | IOS错误日志抓取和分析 在调试自己和别人的IOS App时,发生Crash是非常正常的情况,分析这些Crash的主要手段之一就是分析Crash发生时产生的错误日志.对 ...

  3. python中的日志操作和发送邮件

    1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...

  4. Python错误日志

    Python错误日志的写入方法 目录: #1 第三方库下载 #2 代码原理 #3 完整代码分享 #4 效果展示 第三方库 Traceback 库 Win+R打开"运行" 输入&qu ...

  5. _stat64获取错误_Log4j,Stat4j,SMTPAppender集成–汇总错误日志以发送过多电子邮件...

    _stat64获取错误 我们的开发团队希望在生产系统出现问题时尽快得到通知,这是一个每天为成千上万的客户提供服务的关键Java Web应用程序. 想法是让它在出现太多错误时向我们发送电子邮件,这些错误 ...

  6. mysql grep 提取错误日志_详解grep获取MySQL错误日志信息的方法

    为方便维护MySQL,写了个脚本用以提供收集错误信息的接口.这些错误信息来自与MySQL错误日志,而 通过grep mysql可以获取error-log的路径. 以下是全部相关代码: #!/usr/b ...

  7. python读取git日志_Python获取gitlab提交历史!

    工作中的场景,记录下来分享给大家. 需求 公司私有部署了gitlab保存公司代码,希望在发布系统中可以展示项目在gitlab的提交历史,供发布人员选择提交commit记录并构建对应的docker镜像. ...

  8. Android日志[进阶篇]四-获取错误报告

    Android日志[进阶篇]一-使用 Logcat 写入和查看日志 Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈) Android日志[进阶篇]三-Logcat命令行工具 Androi ...

  9. grep mysql_详解grep获取MySQL错误日志信息的方法

    为方便维护MySQL,写了个脚本用以提供收集错误信息的接口.这些错误信息来自与MySQL错误日志,而 通过grep mysql可以获取error-log的路径. 以下是全部相关代码: #!/usr/b ...

  10. filebeat+logstash收集错误日志发送邮件提醒

    filebeat+logstash收集错误日志发送邮件提醒 典型ELK应用架构 因为只收集错误日志并且数据量并不是非常大所以简化流程 使用filebeat+logstash发送异常日志 软件 版本 说 ...

最新文章

  1. 老毛子固件插件_原地升值?newifi 3 路由器刷入高恪固件教程
  2. 在Linux系统里安装Virtual Box的详细步骤
  3. php 调用 perl,在PHP中使用与Perl兼容的正则表达式
  4. 结构体定义容易混淆的地方
  5. Integer’s Power HDU - 3208(容斥原理)
  6. Oracle入门(七)之表空间
  7. 神经网络人口预测matlab,BP神经网络预测(人口)程序(matlab)
  8. linux eth0 proxy arp,在interface vlan下敲no ip proxy-arp什么意思
  9. Linux下autoconf与automake
  10. 【codeforces】【比赛题解】#950 CF Round #469 (Div. 2)
  11. prolog初学语法结构
  12. java web几百万分页_举例详解用Java实现web分页功能的方法
  13. mysql 查看tomcat日志_查看tomcat日志
  14. 第三阶段应用层——1.7 数码相册—电子书(4)—select支持多输入
  15. 学习KNN(一) 图像分类与KNN原理
  16. leetcode刷题目录总结
  17. 直播app开发搭建,纯css/html实现侧边导航栏
  18. 信息安全--身份认证
  19. vue3 效率的提升、composition-api 和 ref 详解
  20. html手机怎么刷机,一键刷机,小编教你手机怎么一键刷机

热门文章

  1. 第490篇--Accessing the Domain info is denied in IIS.
  2. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_7方法引用_数组的构造器引用...
  3. js获取image中src属性的方法语句
  4. TeamWork#3,Week5,The First Meeting of Our Team
  5. 学习笔记:工厂方法模式及简单工厂模式的对比
  6. Android图像办理组件
  7. HDU 1234- 开门人和关门人
  8. 使用PL/SQL程序输出1~13中所有不是3的倍数的整数数值
  9. 环境判断:区别h5打开还是weixin打开?
  10. 326.是否为3的平方根 IsPowerOfThree