使用装饰器实现自动化日志系统

使用装饰器实现自动化日志系统

使用装饰器实现自动化日志系统的示例代码如下:

python 复制代码
import logging
from functools import wraps

def log_function(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        logging.info(f"调用函数:{func.__name__}")
        result = func(*args, **kwargs)
        logging.info(f"函数执行完成:{func.__name__},结果为:{result}")
        return result
    return wrapper

@log_function
def 加法(a, b):
    return a + b

@log_function
def 乘法(a, b):
    return a * b

logging.basicConfig(level=logging.INFO)

print(加法(2, 3))
print(乘法(4, 5))

在这个示例中,我们定义了一个装饰器 log_function,它记录函数调用前的和后的信息。@wraps(func) 用于保留原始函数的元数据(名称、文档字符串等)。

然后,我们将这个装饰器应用于两个函数:加法乘法。当这些函数被调用时,它们将被包围在 logging 函数中。

输出结果将是:

python 复制代码
INFO:root:调用函数:加法
INFO:root:函数执行完成:加法,结果为:5
INFO:root:调用函数:乘法
INFO:root:函数执行完成:乘法,结果为:20
相关推荐
程序员cxuan1 分钟前
OpenAI 把 Hugging Face 打穿了,然后 GLM 5.2 当了救火队长?
人工智能·后端·程序员
神奇霸王龙2 分钟前
AI 音乐作曲:LLM 歌词 + TTS 人声实战指南
人工智能·ai·prompt·aigc·音视频·ai音乐
2401_859506242 分钟前
珠宝玉石加工的智能化改造:AI视觉检测、3D建模与区块链溯源实践
人工智能·3d·视觉检测
1234Wu7 分钟前
GEO 全域优化是什么?能解决 B2B 工业品在 AI 答案里的跨平台占位问题吗?
人工智能
jason_yang18 分钟前
写给女儿的英语App
前端·人工智能
2503_9317124819 分钟前
2026 企业级 AI 智能体平台选型指南:市场格局、品类解析与落地建议
大数据·人工智能
RuiZN19 分钟前
Muduo---Channel类
运维·服务器·c++
一直在努力学习的菜鸟20 分钟前
阿里云2G2核的服务器可以做什么?
linux·运维
创世宇图20 分钟前
从 8% 到 61%,8 倍提升!Meta 开源 Brain2Qwerty v2:非侵入式脑机接口首次逼近侵入式水平
人工智能
LadenKiller20 分钟前
近期AI量化辅助,工具重点要跟学习阶段变化
人工智能·python