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

python 使用裝飾器并記錄log的示例代碼

 更新時(shí)間:2019年07月12日 09:07:46   投稿:jingxian  
今天小編就為大家分享一篇python 使用裝飾器并記錄log的示例代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

1.首先定義一個(gè)log文件

# -*- coding: utf-8 -*-
import os
import time
import logging
import sys
log_dir1=os.path.join(os.path.dirname(os.path.dirname(__file__)),"logs")
today = time.strftime('%Y%m%d', time.localtime(time.time()))
full_path=os.path.join(log_dir1,today)
if not os.path.exists(full_path):
 os.makedirs(full_path)
log_path=os.path.join(full_path,"facebook.log")
def get_logger():
  # 獲取logger實(shí)例,如果參數(shù)為空則返回root logger
  logger = logging.getLogger("facebook")
  if not logger.handlers:
   # 指定logger輸出格式
   formatter = logging.Formatter('%(asctime)s %(levelname)-8s: %(message)s')
 
   # 文件日志
   file_handler = logging.FileHandler(log_path,encoding="utf8")
   file_handler.setFormatter(formatter) # 可以通過setFormatter指定輸出格式
 
   # 控制臺日志
   console_handler = logging.StreamHandler(sys.stdout)
   console_handler.formatter = formatter # 也可以直接給formatter賦值
 
   # 為logger添加的日志處理器
   logger.addHandler(file_handler)
   logger.addHandler(console_handler)
 
   # 指定日志的最低輸出級別,默認(rèn)為WARN級別
   logger.setLevel(logging.INFO)
  # 添加下面一句,在記錄日志之后移除句柄
  return logger

2.然后定義一個(gè)裝飾器文件

在這里引用wraps,一個(gè)裝飾器的裝飾器,目的為了保持引用進(jìn)來的函數(shù)名字不發(fā)生變化

#!/usr/bin/env python 
# encoding: utf-8
from functools import wraps
from logger.log import get_logger
import traceback
def decoratore(func):
 @wraps(func)
 def log(*args,**kwargs):
  try:
   print("當(dāng)前運(yùn)行方法",func.__name__)
   return func(*args,**kwargs)
  except Exception as e:
   get_logger().error(f"{func.__name__} is error,here are details:{traceback.format_exc()}")
 return log

3.在使用的時(shí)候直接在函數(shù)上面引用即可

@decorator
def start():
 print("666")

以上這篇python 使用裝飾器并記錄log的示例代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python高階函數(shù)使用教程示例

    python高階函數(shù)使用教程示例

    這篇文章主要為大家介紹了python高階函數(shù)使用教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python中Threading用法詳解

    Python中Threading用法詳解

    本篇文章給大家介紹了Python中Threading的詳細(xì)用法,需要的朋友跟著小編一起學(xué)習(xí)下吧。
    2017-12-12
  • python編寫學(xué)生成績管理系統(tǒng)的邏輯結(jié)構(gòu)及功能實(shí)現(xiàn)

    python編寫學(xué)生成績管理系統(tǒng)的邏輯結(jié)構(gòu)及功能實(shí)現(xiàn)

    這篇文章主要為大家介紹了python編寫學(xué)生成績管理系統(tǒng)實(shí)現(xiàn)八個(gè)功能示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • pip安裝py_zipkin時(shí)提示的SSL問題對應(yīng)

    pip安裝py_zipkin時(shí)提示的SSL問題對應(yīng)

    今天小編就為大家分享一篇關(guān)于pip安裝py_zipkin時(shí)提示的SSL問題對應(yīng),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Python如何在循環(huán)內(nèi)使用list.remove()

    Python如何在循環(huán)內(nèi)使用list.remove()

    這篇文章主要介紹了Python如何在循環(huán)內(nèi)使用list.remove(),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python對接六大主流數(shù)據(jù)庫(只需三步)

    Python對接六大主流數(shù)據(jù)庫(只需三步)

    這篇文章主要介紹了Python對接六大主流數(shù)據(jù)庫(只需三步),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python利用解析JSON實(shí)現(xiàn)主機(jī)管理

    Python利用解析JSON實(shí)現(xiàn)主機(jī)管理

    JSON 是一種獨(dú)立于編程語言的數(shù)據(jù)格式,因此在不同的編程語言中都有對應(yīng)的解析器和生成器,本文主要介紹了Python如何通過解析JSON實(shí)現(xiàn)主機(jī)管理,感興趣的小伙伴可以了解一下
    2023-12-12
  • python程序文件擴(kuò)展名知識點(diǎn)詳解

    python程序文件擴(kuò)展名知識點(diǎn)詳解

    在本篇文章里小編給大家整理的是關(guān)于python程序文件擴(kuò)展名知識點(diǎn)詳解內(nèi)容,需要的朋友們學(xué)習(xí)參考下。
    2020-02-02
  • python簡單實(shí)現(xiàn)基于SSL的IRC bot實(shí)例

    python簡單實(shí)現(xiàn)基于SSL的IRC bot實(shí)例

    這篇文章主要介紹了python簡單實(shí)現(xiàn)基于SSL的IRC bot,實(shí)例分析了IRC機(jī)器人的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06
  • Python 存儲字符串時(shí)節(jié)省空間的方法

    Python 存儲字符串時(shí)節(jié)省空間的方法

    這篇文章主要介紹了Python 存儲字符串時(shí)節(jié)省空間的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04

最新評論