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

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

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

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
相关推荐
微学AI3 小时前
一款童年游戏对超级智能体应用开发的启示 — 从《武林群侠传》看 Agent 架构设计的“江湖智慧“
人工智能·游戏·agent
时空无限3 小时前
linux mellanox 网卡队列 irq rps 相关
linux·运维
OBiO20133 小时前
AAV心脏靶向选型与HFpEF治疗新策略:Sub1靶点从发现到验证全解析
人工智能
xx_xxxxx_3 小时前
AI基本结构12-lstm实现nlp
人工智能·pytorch·rnn·lstm
IT_陈寒3 小时前
Redis踩了个大坑,原来DEL命令也会卡住整个实例
前端·人工智能·后端
狂师3 小时前
AI 测试提效 | 告别手动抓取元素,分享我的 ui-page-parser + Skill UI 自动化提效方案
人工智能·agent·测试
七牛云行业应用3 小时前
Codex Computer Use 完全指南:让 AI 接管你的桌面(含 Windows 版)
人工智能·windows
AlbertS3 小时前
Let‘s Encrypt 证书自动续期并自动应用到Nginx
运维·nginx·ssl·cerbot·renew·续期
工业设备方案笔记3 小时前
RK3588 AI部署实战:如何在ARM设备上运行AI模型?——从模型转换到边缘推理全过程解析
arm开发·人工智能·边缘计算
kdxiaojie3 小时前
Linux 驱动研究 —— V4L2 (14)
linux·运维·笔记·学习