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使用xlrd模块操作Excel数据导入的方法
May 26 Python
Python的Django框架中TEMPLATES项的设置教程
May 29 Python
Python实现简单的代理服务器
Jul 25 Python
Python中绑定与未绑定的类方法用法分析
Apr 29 Python
Windows下Python使用Pandas模块操作Excel文件的教程
May 31 Python
Python操作MongoDB详解及实例
May 18 Python
python TCP Socket的粘包和分包的处理详解
Feb 09 Python
Python针对给定列表中元素进行翻转操作的方法分析
Apr 27 Python
python 日期排序的实例代码
Jul 11 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
Aug 06 Python
python 创建一维的0向量实例
Dec 02 Python
python argparse传入布尔参数false不生效的解决
Apr 20 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学习笔记之二
2011/01/17 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
2017/03/14 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
Laravel find in set排序实例
2019/10/09 PHP
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
js正则表达式的使用详解
2013/07/09 Javascript
javascript获得网页窗口实际大小的示例代码
2013/09/21 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
2014/09/03 Javascript
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
使用jquery组件qrcode生成二维码及应用指南
2015/02/22 Javascript
非常实用的12个jquery代码片段
2015/11/02 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
react ant Design手动设置表单的值操作
2020/10/31 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
python线程锁(thread)学习示例
2013/12/04 Python
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
python编程嵌套函数实例代码
2018/02/11 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
Melissa香港官网:MDreams
2016/07/01 全球购物
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
《画家乡》教学反思
2014/04/22 职场文书
小学运动会报道稿
2014/10/04 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python