溫馨提示×

Python裝飾器能用于日志記錄嗎

小樊
108
2024-11-02 05:26:16
欄目: 編程語言

是的,Python裝飾器可以用于日志記錄。裝飾器是一種在不修改原始函數代碼的情況下,為函數添加新功能的方法。這在日志記錄中非常有用,因為它允許你在不改變函數定義的情況下,為其添加日志記錄功能。

以下是一個簡單的示例,展示了如何使用裝飾器記錄函數的調用信息:

import functools
import logging

# 配置日志記錄
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')

def log_decorator(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        logging.info(f"Calling {func.__name__} with args: {args} and kwargs: {kwargs}")
        result = func(*args, **kwargs)
        logging.info(f"{func.__name__} returned: {result}")
        return result
    return wrapper

@log_decorator
def add(a, b):
    return a + b

add(1, 2)

在這個示例中,我們首先配置了日志記錄,然后定義了一個名為log_decorator的裝飾器。這個裝飾器接受一個函數作為參數,并返回一個新的函數wrapper。在wrapper函數中,我們使用logging.info記錄函數的調用信息和返回值。最后,我們使用@log_decorator修飾add函數,這樣當我們調用add函數時,它的調用和返回信息將被記錄。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女