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

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

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

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
相关推荐
程序员猫哥_几秒前
一句话生成应用正在改变什么?2026 AI开发范式新观察
人工智能
你真是饿了4 分钟前
7.进程间通信
linux·运维·服务器
DN20204 分钟前
当AI开始评估客户的“成交指数”
数据结构·人工智能·python·microsoft·链表
FPGA小c鸡5 分钟前
FPGA DSP与AI加速应用案例集合:从入门到精通的完整指南
人工智能·fpga开发
想用offer打牌5 分钟前
MCP (Model Context Protocol) 技术理解 - 第六篇
人工智能
小小张说故事6 分钟前
Python图像处理利器:Pillow (PIL)入门指南
后端·python·图像识别
TEC_INO6 分钟前
Linux_12:通过多线程获取VENC的H264码流数据
linux·运维·服务器
跨境小技7 分钟前
如何从eBay抓取商品价格数据?2026 eBay数据采集实用方案
大数据·运维
EasyLLM8 分钟前
MiniMax M2.5实测
人工智能·llm
小趴菜不能喝9 分钟前
Spring AI 实现RAG
人工智能