python裝飾器和日志輸出


#encoding=utf-8
import logging
import os
import sys
import time

'''
定義一個時間花銷裝飾器,用於輸出各個程序的運行時間,
同時,將結果寫出到日志中
'''
def cost_time(func):
    def inner(*argv):    # *argv可以處理變長參數的情況,其中,logger對象是最后一個參數
        start = time.time()
        res = func(*argv)
        end = time.time()
        logger = argv[-1]
        logger.info('total time cost : %.3f seconds' % (end - start))
        return res
    return inner


@cost_time
def calc(logger):
    logger.info('running calc function...')
    for i in xrange(10000):
        continue

def main():
    program = os.path.basename(sys.argv[0])    # 獲取程序名
    logger = logging.getLogger(program)          # 創建一個日志器
    
    logging.basicConfig(format='%(asctime)s: %(levelname)s: %(message)s')    # 設置日志器輸出格式
    logging.root.setLevel(level=logging.INFO)    # 設置日志器輸出級別,包括INFO, WARNING, ERROR
    logger.info("running %s" % ' '.join(sys.argv))    # 寫日志

    calc(logger)

main()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM