python 获取错误日志,并发送邮件
# -*- 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
:
s
=
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):
f
=
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 获取错误日志,并发送邮件相关推荐
- PHP错误日志,解决不显示不记录日志文件等疑难杂症
2019独角兽企业重金招聘Python工程师标准>>> PHP不显示错误日志,适用于 Ningx + php-fpm +PHP 以及 Apache +mod/cgi+ PHP 方式加 ...
- ios 打印 详细错误日志_【专家专栏】林相宇 | IOS错误日志抓取和分析
原标题:[专家专栏]林相宇 | IOS错误日志抓取和分析 在调试自己和别人的IOS App时,发生Crash是非常正常的情况,分析这些Crash的主要手段之一就是分析Crash发生时产生的错误日志.对 ...
- python中的日志操作和发送邮件
1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...
- Python错误日志
Python错误日志的写入方法 目录: #1 第三方库下载 #2 代码原理 #3 完整代码分享 #4 效果展示 第三方库 Traceback 库 Win+R打开"运行" 输入&qu ...
- _stat64获取错误_Log4j,Stat4j,SMTPAppender集成–汇总错误日志以发送过多电子邮件...
_stat64获取错误 我们的开发团队希望在生产系统出现问题时尽快得到通知,这是一个每天为成千上万的客户提供服务的关键Java Web应用程序. 想法是让它在出现太多错误时向我们发送电子邮件,这些错误 ...
- mysql grep 提取错误日志_详解grep获取MySQL错误日志信息的方法
为方便维护MySQL,写了个脚本用以提供收集错误信息的接口.这些错误信息来自与MySQL错误日志,而 通过grep mysql可以获取error-log的路径. 以下是全部相关代码: #!/usr/b ...
- python读取git日志_Python获取gitlab提交历史!
工作中的场景,记录下来分享给大家. 需求 公司私有部署了gitlab保存公司代码,希望在发布系统中可以展示项目在gitlab的提交历史,供发布人员选择提交commit记录并构建对应的docker镜像. ...
- Android日志[进阶篇]四-获取错误报告
Android日志[进阶篇]一-使用 Logcat 写入和查看日志 Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈) Android日志[进阶篇]三-Logcat命令行工具 Androi ...
- grep mysql_详解grep获取MySQL错误日志信息的方法
为方便维护MySQL,写了个脚本用以提供收集错误信息的接口.这些错误信息来自与MySQL错误日志,而 通过grep mysql可以获取error-log的路径. 以下是全部相关代码: #!/usr/b ...
- filebeat+logstash收集错误日志发送邮件提醒
filebeat+logstash收集错误日志发送邮件提醒 典型ELK应用架构 因为只收集错误日志并且数据量并不是非常大所以简化流程 使用filebeat+logstash发送异常日志 软件 版本 说 ...
最新文章
- 老毛子固件插件_原地升值?newifi 3 路由器刷入高恪固件教程
- 在Linux系统里安装Virtual Box的详细步骤
- php 调用 perl,在PHP中使用与Perl兼容的正则表达式
- 结构体定义容易混淆的地方
- Integer’s Power HDU - 3208(容斥原理)
- Oracle入门(七)之表空间
- 神经网络人口预测matlab,BP神经网络预测(人口)程序(matlab)
- linux eth0 proxy arp,在interface vlan下敲no ip proxy-arp什么意思
- Linux下autoconf与automake
- 【codeforces】【比赛题解】#950 CF Round #469 (Div. 2)
- prolog初学语法结构
- java web几百万分页_举例详解用Java实现web分页功能的方法
- mysql 查看tomcat日志_查看tomcat日志
- 第三阶段应用层——1.7 数码相册—电子书(4)—select支持多输入
- 学习KNN(一) 图像分类与KNN原理
- leetcode刷题目录总结
- 直播app开发搭建,纯css/html实现侧边导航栏
- 信息安全--身份认证
- vue3 效率的提升、composition-api 和 ref 详解
- html手机怎么刷机,一键刷机,小编教你手机怎么一键刷机
热门文章
- 第490篇--Accessing the Domain info is denied in IIS.
- 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_7方法引用_数组的构造器引用...
- js获取image中src属性的方法语句
- TeamWork#3,Week5,The First Meeting of Our Team
- 学习笔记:工厂方法模式及简单工厂模式的对比
- Android图像办理组件
- HDU 1234- 开门人和关门人
- 使用PL/SQL程序输出1~13中所有不是3的倍数的整数数值
- 环境判断:区别h5打开还是weixin打开?
- 326.是否为3的平方根 IsPowerOfThree