Python实现监控程序执行时间并将其写入日志的方法


Posted in Python onJune 30, 2015

本文实例讲述了Python实现监控程序执行时间并将其写入日志的方法。分享给大家供大家参考。具体实现方法如下:

# /usr/bin/python
# -*- coding:utf-8 -*-
from time import time
def logged(when):
  def log(f,*args,**kargs):
    print '''
         called:
          functions:%s
          args: %r
          kargs: %r
    '''  % (f,args,kargs)
  def pre_logged(f):
    def wrapper(*args,**kargs):
      log(f,*args,**kargs)
      return f(*args,**kargs)
    return wrapper
  def post_logged(f):
    def wrapper(*args,**kargs):
      now = time()
      try:
        return f(*args,**kargs)
      finally:
        log(f,*args,**kargs)
        print "time delta:%s" % (time()-now)
    return wrapper
  try:
    return {"pre":pre_logged,"post":post_logged}[when]
  except KeyError,e:
    raise ValueError(e),'must be "pre" or "post"'
@logged("post")
def hello(name):
  print "hello,",name
hello("world!")
'''
等同于: hello = logged("post")(hello("world!"))
'''

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
分享Python字符串关键点
Dec 13 Python
Python 编码处理-str与Unicode的区别
Sep 06 Python
python3+mysql查询数据并通过邮件群发excel附件
Feb 24 Python
python实现自动网页截图并裁剪图片
Jul 30 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
Jun 18 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
Python脚本利用adb进行手机控制的方法
Jul 08 Python
Python中zip()函数的简单用法举例
Sep 02 Python
python两个_多个字典合并相加的实例代码
Dec 26 Python
快速解决jupyter启动卡死的问题
Apr 10 Python
python实现网页录音效果
Oct 26 Python
Python3 多线程(连接池)操作MySQL插入数据
Jun 09 Python
python实现爬取千万淘宝商品的方法
Jun 30 #Python
python简单判断序列是否为空的方法
Jun 30 #Python
python检查序列seq是否含有aset中项的方法
Jun 30 #Python
python判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 #Python
python过滤字符串中不属于指定集合中字符的类实例
Jun 30 #Python
python获得文件创建时间和修改时间的方法
Jun 30 #Python
python读写ini配置文件方法实例分析
Jun 30 #Python
You might like
PHP获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
浅谈php命令行用法
2015/02/04 PHP
浅谈使用PHP开发微信支付的流程
2015/10/04 PHP
基于ThinkPHP实现批量删除
2015/12/18 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
起点页面传值js,有空研究学习下
2010/01/25 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
node.js中的fs.unlinkSync方法使用说明
2014/12/15 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
react-router实现按需加载
2017/05/09 Javascript
关于vue-router的那些事儿
2018/05/23 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
2020/11/18 Vue.js
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
Python运算符重载用法实例
2015/05/28 Python
python字符串连接方法分析
2016/04/12 Python
python实现机器人行走效果
2018/01/29 Python
python 检查文件mime类型的方法
2018/12/08 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
Django如何实现上传图片功能
2019/08/16 Python
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
sort命令的作用和用法
2012/11/04 面试题
护士专业推荐信
2013/11/02 职场文书
总经理助理的职责
2014/03/14 职场文书
领导班子整改措施
2014/10/24 职场文书
先进学校事迹材料
2014/12/30 职场文书
彻底理解golang中什么是nil
2021/04/29 Golang
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
世界十大评分最高的动漫,CLANNAD上榜,第八赚足人们眼泪
2022/03/18 日漫