• 监控程序执行时间并将其写入日志的脚本


    # /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!"))
    '''
  • 相关阅读:
    学习笔记::有上下界的网络流
    zoj2314
    bzoj3261
    bzoj 1898
    bzoj4009
    bzoj4033
    bzoj3389
    bzoj2427
    uva 11825
    交换A与B值的四种方法
  • 原文地址:https://www.cnblogs.com/mingaixin/p/2946071.html
Copyright © 2020-2023  润新知