python装饰器详解与日志_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()

原文:https://www.cnblogs.com/zhanzq/p/10881500.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值