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

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

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

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
相关推荐
4SAPI3 分钟前
企业级 RAG 知识库问答大模型 API 生产选型指南:4SAPI、硅基流动与 OpenRouter 的架构权衡
人工智能·gateway·agent·rag
桃西西呀4 分钟前
嘴替鸭小程序是怎么看懂一句话的:本地规则 + 大模型的混合引擎拆解
人工智能·llm·ai编程
Angeldream1235 分钟前
第 7 章 医学影像特征提取与分析
图像处理·python·深度学习·计算机视觉·医学影像·特征提取
一只废狗狗狗狗狗狗狗狗狗8 分钟前
Transformer——一个sequence-to-sequence的model
人工智能·自然语言处理·transformer
小李的AI雷达8 分钟前
Anthropic发布Claude Duet;AI智能体32分钟分析小鼠脑数据 | 科技日报1022
人工智能
狂师12 分钟前
夯爆了!又一款开源企业级一站式AI智能测试平台!(附平台架构、技术选型)
人工智能·测试·全栈
Hommy8812 分钟前
【直播切片工作台】第16章:统一响应封装
人工智能·直播切片
艾莉丝努力练剑14 分钟前
【AI大模型接入SDK】ChatServer 路由规则绑定
网络·c++·人工智能·学习·ai·架构
二川bro15 分钟前
AI可编辑PPT产品线技术方案调研与落地思考
人工智能
KKKlucifer15 分钟前
数据安全管控平台运营化关键技术:从策略下发到闭环治理
大数据·人工智能·产品运营