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使用装饰器作日志处理的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python读取分割压缩TXT文本文件实例

    Python读取分割压缩TXT文本文件实例

    今天小编就为大家分享一篇Python读取分割压缩TXT文本文件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python实现爬取某站视频弹幕并绘制词云图

    Python实现爬取某站视频弹幕并绘制词云图

    这篇文章主要介绍了利用Python爬取某站的视频弹幕,并将其绘制成词云图,文中的示例代码讲解详细,对我学习Python爬虫有一定的帮助,需要的朋友可以参考一下
    2021-12-12
  • 使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

    使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”

    这篇文章主要介绍了使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”,笔者用 Python 爬取淘宝某商品的全过程,并对商品数据进行了挖掘与分析,最终得出结论。需要的朋友可以参考下
    2018-03-03
  • Python 内置函数sorted()的用法

    Python 内置函数sorted()的用法

    这篇文章主要介绍了Python 内置函数sorted()的用法,文章内容介绍详细具有一的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-03-03
  • python pandas轻松通过特定列的值多条件去筛选数据及contains方法的使用

    python pandas轻松通过特定列的值多条件去筛选数据及contains方法的使用

    这篇文章主要介绍了python pandas轻松通过特定列的值多条件去筛选数据及contains方法的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python获取时间戳代码实例

    Python获取时间戳代码实例

    这篇文章主要介绍了Python获取时间戳代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Python pandas之多级索引取值详解

    Python pandas之多级索引取值详解

    这篇文章主要为大家介绍了Python pandas之多级索引取值,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • 使用Python和PySpark进行数据分析的实战教程

    使用Python和PySpark进行数据分析的实战教程

    数据分析是当今信息时代中至关重要的技能之一,Python和PySpark作为强大的工具,提供了丰富的库和功能,使得数据分析变得更加高效和灵活,在这篇文章中,我们将深入探讨如何使用Python和PySpark进行数据分析,需要的朋友可以参考下
    2024-01-01
  • 详解如何利用Numpy生成各种各样的数组

    详解如何利用Numpy生成各种各样的数组

    Numpy提供了多种函数和方法,可以方便地生成不同形状和类型的数组,今天小编就带大家学习一下如何利用 Numpy 生成各种各样的数组吧
    2023-07-07
  • python爬取梨视频生活板块最热视频

    python爬取梨视频生活板块最热视频

    这篇文章主要介绍了python爬取梨视频生活板块最热视频,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论