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

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

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

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
相关推荐
superior tigre4 分钟前
CUDA算子开发(LLM方向)常见的一些术语
人工智能·加速推理
weixin_463923427 分钟前
知网更新后,这4种降AI方法已失效!
人工智能
门豪杰17 分钟前
Ubuntu下安装Claude Code
linux·运维·ubuntu·claude·claude code
Looooking23 分钟前
Python 之获取安装包所占用磁盘空间大小
python
赵康27 分钟前
老板与员工:5分钟理解 Subagent 架构
ai·claude code·subagent·openclaw
WenGyyyL31 分钟前
ColBERT论文研读——NLP(IR)里程碑之作
人工智能·python·语言模型·自然语言处理
JavaGuide33 分钟前
MiniMax M2.7 发布!Redis 故障排查 + 跨语言重构场景实测,表现如何?
redis·后端·ai·ai编程
lxy-up34 分钟前
RAG--切片策略
python
彩旗工作室34 分钟前
Cursor 全面深度指南:从诞生到实战,AI 编程时代的终极武器
人工智能·ai编程
新新学长搞科研39 分钟前
第五届电子、集成电路与通信技术国际学术会议(EICCT 2026)
运维·人工智能·自动化·集成测试·信号处理·集成学习·电气自动化