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通过DOM和SAX方式解析XML的应用实例分享
Nov 16 Python
Python 列表理解及使用方法
Oct 27 Python
在ubuntu16.04中将python3设置为默认的命令写法
Oct 31 Python
Python实现的爬取百度贴吧图片功能完整示例
May 10 Python
python可视化实现KNN算法
Oct 16 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 Python
Python3 io文本及原始流I/O工具用法详解
Mar 23 Python
详解python中的lambda与sorted函数
Sep 04 Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 Python
pytorch简介
Nov 11 Python
Python GUI库Tkiner使用方法代码示例
Nov 27 Python
Django drf请求模块源码解析
Jun 08 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
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
vuex的使用步骤
2021/01/06 Vue.js
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
如何利用Python识别图片中的文字
2020/05/31 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
如何用Python绘制3D柱形图
2020/09/16 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
优秀小学生家长评语
2014/01/30 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
学校百日安全活动总结
2015/05/07 职场文书
如何用RabbitMQ和Swoole实现一个异步任务系统
2021/05/29 PHP
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android