使用AWS亚马逊云搭建Gmail转发服务(三)
title: 使用AWS亚马逊云搭建Gmail转发服务(三)
author:青南
date: 2015-01-02 15:42:22
categories: [Python]
tags: [log,Gmail,Python,Flask]
在上一篇文章使用AWS亚马逊云搭建Gmail转发服务(二)中,我们已经介绍了如何把邮件转发程序部署在服务器上。但是这样还不够。还需要实时监控程序的运行状态。于是,给程序增加日志记录功能是非常重要的。
日志
这里使用Python的logging库,实现日志记录功能。
import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(filename)s %(levelname)s %(message)s',
datefmt='%Y %m %d %H:%M:%S', #日期格式:年月日时分秒
filename='mail_note.log', #文件名
filemode='a') #以最佳的方式添加日志
mail_log = logging.getLogger('maillog')
以上代码的作用是导入logging库功能。然后配置logging的输出格式。
各行代码的作用已经注释。
要使用日志的时候,通过以下代码:
logging.info('日志内容')
同类的还有:
mail_log.debug('内容')
mail_log.warning('内容')
mail_log.error('内容')
……
logging库的功能还有很多,这里只是简单的介绍一下,更多的功能可以查阅相关的资料。
Flask
现在日志已经生成。又如何通过Flask查看呢?由于我的前端不行。因此这里就不使用精细的模板了。Flask的部署就不叙述了,各位可以参考Flask官方文档http://dormousehole.readthedocs.org/en/latest/
这里我只演示一个非常简单的日志输出功能。编写gmail_flask.py,请看代码:
#--coding:utf-8--
from flask import Flask
app = Flask(name)
@app.route('/')
def index():
f = open('mail_note.log','rb') #以读文件的方式打开mail_note.log文件
content = f.readlines()#按行读取日志
s = ''
for each in content:
s += each
s += '</p>'#输出日志
f.close()
return s
if __name__ == '__main__':
app.run(host='0.0.0.0') #开发外网访问
这个功能是把日志按行输出到网页上。
现在测试一下功能:
在终端窗口输入:
screen
python gmail_helper.py
然后Ctrl+A+D返回,再输入:
screen
python gmail_flask.py
然后访问服务器的5000端口查看效果。如图是我的服务器返回信息:
这里出现了Google的很多信息,这是由于Gmail的API库文件discovery.py里面也有用到日志功能。这个时候这里调用根logging,就会把discovery.py里面logging.info输出的信息写出来。这个时候怎么办呢?我对logging不是很熟悉,还请熟悉logging模块的朋友指点迷津。
我使用了一个变通的办法:
修改gmail_flask.py文件:
#-*-coding:utf-8-*-
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
f = open('mail_note.log','rb') #以读文件的方式打开mail_note.log文件
content = f.readlines()#按行读取日志
s = ''
for each in content:
if 'gmail_helper.py' in each: #判定信息来自gmail_helper.py而不是discovery.py
s += each
s += '</p>'#输出日志
f.close()
return s
if __name__ == '__main__':
app.run(host='0.0.0.0') #开发外网访问
效果如下图:
源代码已更新到Github,请戳->https://github.com/kingname/MCC/blob/master/ghelper_with_log
我的日志会通过博客进行开放,地址请戳:
http://flask.kingname.info:5000
(2015年1月8日已暂停flask.kingname.info:5000访问,因为发现有个人信息流出。)
使用AWS亚马逊云搭建Gmail转发服务(三)的更多相关文章
- 使用AWS亚马逊云搭建Gmail转发服务(二)
title: 使用AWS亚马逊云搭建Gmail转发服务(二) author:青南 date: 2014-12-31 14:44:27 categories: [Python] tags: [Pytho ...
- 使用AWS亚马逊云搭建Gmail转发服务(一)
title: 使用AWS亚马逊云搭建Gmail转发服务(一) author:青南 date: 2014-12-30 15:41:35 categories: Python tags: [Gmail,A ...
- [转]Amazon AWS亚马逊云服务免费一年VPS主机成功申请和使用方法
今天部落将再次为大家介绍如何成功申请到来自亚马逊的Amazon AWS免费一年的VPS主机服务.亚马逊公司这个就不用介绍了,是美国最大的一家网络电子商务公司,亚马逊弹性计算云Amazon EC2更是鼎 ...
- 当 EDA 遇到 Serverless,亚马逊云科技出招了
近二三十年来,软件开发领域毫无疑问是发展最为迅速的行业之一. 在上个世纪九十年代,世界上市值最高的公司大多是资源类或者重工业类的公司,例如埃克森美孚或者通用汽车,而现在市值最高的公司中,纯粹的软件公司 ...
- AWS系列之一 亚马逊云服务概述
云计算经过这几年的发展,已经不再是是一个高大上的名词,而是已经应用到寻常百姓家的技术.每天如果你和互联网打交道,那么或多或少都会和云扯上关系.gmail.github.各种网盘.GAE.heroku等 ...
- 亚马逊云服务器AWS安装CentOS
亚马逊云服务器默认创建的实例,在停止之后再启动的情况下,IP会发生改变.所以我们最好先创建一个弹性IP,即EIP,不过我也不清楚这个费用. 1.按如图操作创建一个弹性IP,弹性IP创建之后可以随便绑定 ...
- 【AWS】亚马逊云常用服务解释
新公司使用的是亚马逊服务,刚开始的时候,对很多名词不太明白,总结了一下如下 1,EC2 这个是亚马逊的一种服务器服务,可以理解为跟vmware差不多,EC2为虚拟机提供载体,EC2上跑虚拟机服务器. ...
- 使用亚马逊云服务器EC2做深度学习(三)配置TensorFlow
这是<使用亚马逊云服务器EC2做深度学习>系列的第三篇文章. (一)申请竞价实例 (二)配置Jupyter Notebook服务器 (三)配置TensorFlow (四)配置好的系统 ...
- 亚马逊云架设WordPress博客
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 这篇文章介绍如何在亚马逊云架设WordPress博客.最强的云,加上最流行的建站工 ...
随机推荐
- 先说IEnumerable,我们每天用的foreach你真的懂它吗?
我们先思考几个问题: 为什么在foreach中不能修改item的值? 要实现foreach需要满足什么条件? 为什么Linq to Object中要返回IEnumerable? 接下来,先开始我们的正 ...
- ExtJS 4.2 评分组件
上一文章是扩展ExtJS自带的Date组件.在这里将创建一个评分组件. 目录 1. 介绍 2. 示例 3. 资源下载 1. 介绍 代码参考的是 Sencha Touch 2上的一个RatingStar ...
- .NetCore中的日志(2)集成第三方日志工具
.NetCore中的日志(2)集成第三方日志工具 0x00 在.NetCore的Logging组件中集成NLog 上一篇讨论了.NetCore中日志框架的结构,这一篇讨论一下.NetCore的Logg ...
- ADO.NET对象的详解
1. Connection 类 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接数据库所需要的其它参数.Connection对象会被Command对象使用,这样就能 ...
- hadoop 2.7.3本地环境运行官方wordcount
hadoop 2.7.3本地环境运行官方wordcount 基本环境: 系统:win7 虚机环境:virtualBox 虚机:centos 7 hadoop版本:2.7.3 本次先以独立模式(本地模式 ...
- InnoDB体系结构学习笔记
后台线程 Master Thread 核心的后台线程,主要负责将缓冲池的数据异步刷新到磁盘,保证数据的一致性,包括(脏页的刷新).合并插入缓冲.(UNDO页的回收)等 IO Thread 4个writ ...
- ABP文档翻译--值对象
本人是ABP初学者,在看英文文档和@tkb至简 的ABP框架理论研究总结(典藏版)时,发现大神@tkb至简中少了对Value Objects的翻译,看文档是新的,大神没时间把,小弟给补充上. 介绍 值 ...
- linux常用查看硬件设备信息命令
转载:http://blog.chinaunix.net/uid-26782198-id-3242120.html # uname -a # 查看内核/操作系统/CPU信息 ...
- fhq treap最终模板
新学习了fhq treap,厉害了 先贴个神犇的版, from memphis /* Treap[Merge,Split] by Memphis */ #include<cstdio> # ...
- 二次剩余、三次剩余、k次剩余
今天研究了一下这块内容...首先是板子 #include <iostream> #include <stdio.h> #include <math.h> #incl ...