欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python使用裝飾器作日志處理的方法

 更新時間:2019年07月11日 16:21:06   作者:Memory_qq312141830  
今天小編就為大家分享一篇python使用裝飾器作日志處理的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

裝飾器這東西我看了一會兒才明白,在函數(shù)外面套了一層函數(shù),感覺和java里的aop功能很像;寫了2個裝飾器日志的例子,

第一個是不帶參數(shù)的裝飾器用法示例,功能相當(dāng)于給函數(shù)包了層異常處理,第二個是帶參數(shù)的裝飾器用法示例,將日志輸出到文件。

```
#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):#帶參數(shù)的裝飾器需要2層裝飾器實現(xiàn),第一層傳參數(shù),第二層傳函數(shù),每層函數(shù)在上一層返回
 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使用裝飾器作日志處理的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • TensorFlow模型保存和提取的方法

    TensorFlow模型保存和提取的方法

    這篇文章主要為大家詳細介紹了TensorFlow模型保存和提取的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python使用xlsx和pandas處理Excel表格的操作步驟

    python使用xlsx和pandas處理Excel表格的操作步驟

    python的神器pandas庫就可以非常方便地處理excel,csv,矩陣,表格 等數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于python使用xlsx和pandas處理Excel表格的操作步驟,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • Python數(shù)據(jù)可視化之matplotlib.pyplot繪圖的基本參數(shù)詳解

    Python數(shù)據(jù)可視化之matplotlib.pyplot繪圖的基本參數(shù)詳解

    matplotlib.pyplot模塊是一個功能強大的畫圖模塊,可以對畫圖的多個參數(shù)進行調(diào)整,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)可視化之matplotlib.pyplot繪圖基本參數(shù)的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Python實現(xiàn)豎排打印傳單手機號碼易撕條

    Python實現(xiàn)豎排打印傳單手機號碼易撕條

    這篇文章主要介紹了Python實現(xiàn)豎排打印傳單手機號碼易撕條,代碼非常簡單,功能很實用,推薦給大家,有需要的小伙伴,參考下
    2015-03-03
  • Pytorch圖像處理注意力機制解析及代碼詳解

    Pytorch圖像處理注意力機制解析及代碼詳解

    這篇文章主要為大家介紹了Pytorch圖像處理注意力機制解析及代碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python借助with語句實現(xiàn)代碼段只執(zhí)行有限次

    Python借助with語句實現(xiàn)代碼段只執(zhí)行有限次

    這篇文章主要介紹了Python借助with語句實現(xiàn)代碼段只執(zhí)行有限次,首先要定義一個能夠在with語句中使用的類實現(xiàn)enter和exit,下文詳細介紹需要的小伙伴可以參考一下
    2022-03-03
  • Python 字典中的所有方法及用法

    Python 字典中的所有方法及用法

    這篇文章主要介紹了Python 字典中的所有方法及用法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 如何通過雪花算法用Python實現(xiàn)一個簡單的發(fā)號器

    如何通過雪花算法用Python實現(xiàn)一個簡單的發(fā)號器

    這篇文章主要介紹了如何通過雪花算法用Python實現(xiàn)一個簡單的發(fā)號器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python 輸入字符串生成所有有效的IP地址(LeetCode 93號題)

    python 輸入字符串生成所有有效的IP地址(LeetCode 93號題)

    這篇文章主要介紹了python 生成所有有效的IP地址的方法,幫助大家解答題目,學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-10-10
  • Python3簡單實現(xiàn)串口通信的方法

    Python3簡單實現(xiàn)串口通信的方法

    今天小編就為大家分享一篇Python3簡單實現(xiàn)串口通信的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評論