Python使用logging结合decorator模式实现优化日志输出的方法


Posted in Python onApril 16, 2016

本文实例讲述了Python使用logging结合decorator模式实现优化日志输出的方法。分享给大家供大家参考,具体如下:

python内置的loging模块非常简便易用, 很适合程序运行日志的输出。

而结合python的装饰器模式,则可实现简明实用的代码。测试代码如下所示:

#! /usr/bin/env python2.7
# -*- encoding: utf-8 -*-
import logging
logging.basicConfig(format='[%(asctime)s] %(message)s', level=logging.INFO)
def time_recorder(func):
  """装饰器, 用在func方法执行前后, 增加运行信息"""
  def wrapper():
    logging.info("Begin to execute function: %s" % func.__name__)
    func()
    logging.info("Finish executing function: %s" % func.__name__)
  return wrapper
@time_recorder
def first_func():
  print "I'm first_function. I'm doing something..."
@time_recorder
def second_func():
  print "I'm second_function. I'm doing something..."
if __name__ == "__main__":
  first_func()
  second_func()

运行并得到输出:

[2014-04-01 18:02:13,724] Begin to execute function: first_func
I'm first_function. I'm doing something...
[2014-04-01 18:02:13,725] Finish executing function: first_func
[2014-04-01 18:02:13,725] Begin to execute function: second_func
I'm second_function. I'm doing something...
[2014-04-01 18:02:13,725] Finish executing function: second_func

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python函数形参用法实例分析
Aug 04 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
Aug 10 Python
谈谈Python进行验证码识别的一些想法
Jan 25 Python
python3 shelve模块的详解
Jul 08 Python
python numpy格式化打印的实例
May 14 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
python利用requests库模拟post请求时json的使用教程
Dec 07 Python
详解基于python-django框架的支付宝支付案例
Sep 23 Python
python实现超市商品销售管理系统
Oct 25 Python
tensorflow实现将ckpt转pb文件的方法
Apr 22 Python
python re模块和正则表达式
Mar 24 Python
Python中requests做接口测试的方法
May 30 Python
Python使用redis pool的一种单例实现方式
Apr 16 #Python
说一说Python logging
Apr 15 #Python
Python Web框架Tornado运行和部署
Oct 19 #Python
Python爬虫爬验证码实现功能详解
Apr 14 #Python
Python实现简单登录验证
Apr 13 #Python
Python数组定义方法
Apr 13 #Python
Python基于select实现的socket服务器
Apr 13 #Python
You might like
php 在文件指定行插入数据的代码
2010/05/08 PHP
php缩小png图片不损失透明色的解决方法
2013/12/25 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
PHP实现清除wordpress里恶意代码
2015/10/21 PHP
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
2013/11/25 Javascript
js charAt的使用示例
2014/02/18 Javascript
JavaScript分析、压缩工具JavaScript Analyser
2014/12/31 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
2015/09/14 Javascript
jQuery实现浮动层随浏览器滚动条滚动的方法
2015/09/22 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
js实现抽奖效果
2017/03/27 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
pytorch permute维度转换方法
2018/12/14 Python
python list多级排序知识点总结
2019/10/23 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
墨西哥网上超市:Superama
2018/07/10 全球购物
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
Can a struct inherit from another class? (结构体能继承类吗)
2014/07/22 面试题
施工班组长岗位职责
2014/01/05 职场文书
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
英语专业个人求职信范文
2014/02/01 职场文书
材料员岗位职责范本
2015/04/11 职场文书
借钱欠条怎么写
2015/07/03 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏