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正则表达式修复网站文章字体不统一的解决方法
Feb 21 Python
python获得两个数组交集、并集、差集的方法
Mar 27 Python
Python实现国外赌场热门游戏Craps(双骰子)
Mar 31 Python
Python简单实现子网掩码转换的方法
Apr 13 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
Python闭包函数定义与用法分析
Jul 20 Python
Ubuntu下Python2与Python3的共存问题
Oct 31 Python
python的依赖管理的实现
May 14 Python
使用Python实现正态分布、正态分布采样
Nov 20 Python
python 实现视频 图像帧提取
Dec 10 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
Apr 24 Python
python 实现汉诺塔游戏
Nov 28 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的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
详解PHP执行定时任务的实现思路
2015/12/21 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
document.execCommand()的用法小结
2014/01/08 Javascript
JavaScript组件开发完整示例
2015/12/15 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
了解VUE的render函数的使用
2017/06/08 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
node.js中事件触发器events的使用方法实例分析
2019/11/23 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
Python flask框架端口失效解决方案
2020/06/04 Python
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
技术总监岗位职责
2013/12/05 职场文书
幼儿园儿童节活动主持词+串词大全
2014/03/21 职场文书
任命书怎么写
2014/06/04 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
Python实现简单的猜单词
2021/06/15 Python