python使用装饰器作日志处理的方法

 更新时间:2019年07月11日 16:21:06   作者:Memory_qq312141830   我要评论
今天小编就为大家分享一篇python使用装饰器作日志处理的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

装饰器这东西我看了一会儿才明白,在函数外面套了一层函数,感觉和java里的aop功能很像;写了2个装饰器日志的例子,

第一个是不带参数的装饰器用法示例,功能相当于给函数包了层异常处理,第二个是带参数的装饰器用法示例,将日志输出到文件。

```
#coding=utf8
import traceback
import logging
from logging.handlers import TimedRotatingFileHandler
def logger(func):
 def inner(*args, **kwargs): #1
 try:
  #print "Arguments were: %s, %s" % (args, kwargs)
  func(*args, **kwargs) #2
 except:
  #print 'error',traceback.format_exc()
  print 'error'
 return inner

def loggerInFile(filename):#带参数的装饰器需要2层装饰器实现,第一层传参数,第二层传函数,每层函数在上一层返回
 def decorator(func):
 def inner(*args, **kwargs): #1
  logFilePath = filename # 日志按日期滚动,保留5天
  logger = logging.getLogger()
  logger.setLevel(logging.INFO)
  handler = TimedRotatingFileHandler(logFilePath,
       when="d",
       interval=1,
       backupCount=5)
  formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
  handler.setFormatter(formatter)
  logger.addHandler(handler)
  try:
  #print "Arguments were: %s, %s" % (args, kwargs)
  result = func(*args, **kwargs) #2
  logger.info(result)
  except:
  logger.error(traceback.format_exc())
 return inner
 return decorator
@logger
def test():
 print 2/0
test()

@loggerInFile('newloglog')
def test2(n):
 print 100/n
test2(10)
test2(0)
print 'end'
```

以上这篇python使用装饰器作日志处理的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持澳门金沙网上娱乐。

相关文章

  • Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】

    Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、

    这篇文章主要介绍了Python3爬虫爬取百姓网列表并保存为json功能,涉及Python基于request、lxml和json模块的Request请求与响应数据处理相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • 如何在python中使用selenium的示例

    如何在python中使用selenium的示例

    这篇文章主要介绍了如何在python中使用selenium的示例,selenium提供了一个通用的接口,可模拟用户来操作浏览器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • django1.8使用表单上传文件的实现方法

    django1.8使用表单上传文件的实现方法

    Django是一个开放源代码的Web应用框架,由Python写成。这篇文章主要介绍了django1.8使用表单上传文件的相关资料,非常不错具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-11-11
  • python编程开发之textwrap文本样式处理技巧

    python编程开发之textwrap文本样式处理技巧

    这篇文章主要介绍了python编程开发之textwrap文本样式处理技巧,实例分析了Python中textwrap的常用方法与处理文本样式的相关使用技巧,需要的朋友可以参考下
    2015-11-11
  • 使用PyInstaller将Python程序文件转换为可执行程序文件

    使用PyInstaller将Python程序文件转换为可执行程序文件

    与py2exe一样,PyInstaller程序也可以将Python的.py程序文件转换为.exe,并且还有Linux的版本,下面我们就来详细看一下如何使用PyInstaller将Python程序文件转换为可执行程序文件
    2016-07-07
  • Python正则表达式匹配中文用法示例

    Python正则表达式匹配中文用法示例

    这篇文章主要介绍了Python正则表达式匹配中文用法,结合实例形式分析了Python针对中文的正则与文件操作相关技巧,需要的朋友可以参考下
    2017-01-01
  • Django返回json数据用法示例

    Django返回json数据用法示例

    这篇文章主要介绍了Django返回json数据用法,结合实例形式分析了jQuery通过前端ajax发送get请求及后台使用Django接收GET请求并返回处理的json数据相关技巧,需要的朋友可以参考下
    2016-09-09
  • python Flask实现restful api service

    python Flask实现restful api service

    本篇文章主要介绍了python Flask实现restful api service,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Django中自定义模型管理器(Manager)及方法

    Django中自定义模型管理器(Manager)及方法

    这篇文章主要介绍了Django中自定义模型管理器(Manager)及方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • 浅析python中numpy包中的argsort函数的使用

    浅析python中numpy包中的argsort函数的使用

    这篇文章主要介绍了python中numpy包中的argsort函数的使用,argsort()函数在模块numpy.core.fromnumeric中,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2018-08-08

最新评论