zoukankan      html  css  js  c++  java
  • 监控程序执行时间并将其写入日志的脚本

    # /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!"))
    '''
  • 相关阅读:
    eclipse中包的位置
    404代码错误解决
    servlet-web.xml配置
    java web.xml配置servlet
    1031整理
    1030整理
    rownum
    存储过程和自定义函数的区别
    课堂整理
    练习
  • 原文地址:https://www.cnblogs.com/mingaixin/p/2946071.html
Copyright © 2011-2022 走看看