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 相关文章推荐
pyqt和pyside开发图形化界面
Jan 22 Python
Python查找函数f(x)=0根的解决方法
May 07 Python
Python3搜索及替换文件中文本的方法
May 22 Python
python实现将内容分行输出
Nov 05 Python
python基础之入门必看操作
Jul 26 Python
Python selenium实现微博自动登录的示例代码
May 16 Python
对python周期性定时器的示例详解
Feb 19 Python
python selenium firefox使用详解
Feb 26 Python
Python数据类型之Set集合实例详解
May 07 Python
python opencv实现证件照换底功能
Aug 19 Python
如何基于python把文字图片写入word文档
Jul 31 Python
Python打包exe时各种异常处理方案总结
May 18 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-fpm 参数的深入理解
2013/06/03 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
2013/12/24 PHP
CI框架表单验证实例详解
2016/11/21 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
jQuery 隔行换色 支持键盘上下键,按Enter选定值
2009/08/02 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
javascript中bind函数的作用实例介绍
2014/09/28 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
详解参数传递四种形式
2015/07/21 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
2016/04/06 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
JavaScript中的this使用详解
2016/07/27 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
微信小程序实战之上拉(分页加载)效果(2)
2017/04/17 Javascript
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
Python的Flask框架的简介和安装方法
2015/11/13 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
python实现点对点聊天程序
2018/07/28 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
美国温暖商店:The Warming Store
2018/12/15 全球购物
个人党性剖析材料
2014/02/03 职场文书
销售竞赛活动方案
2014/08/23 职场文书