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

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

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

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
相关推荐
金融小师妹18 小时前
多因子智能推演:油价回落6%与黄金震荡上行的关联解析——AI预测框架
大数据·python·深度学习
VIP_CQCRE20 小时前
Claude 接入 Luma MCP:一句话让 AI 生成电影感短视频
ai·claude·mcp·luma·acedatacloud
Ai思想家20 小时前
私有化部署的服务器选型与容量规划
人工智能·安全·ai
小码哥哥20 小时前
实战指南:企业网盘与AI知识库的融合架构设计与实现
人工智能
2401_8685347820 小时前
数仓开发落地手册
linux·运维
品牌测评20 小时前
AI编码平台的技术演进与行业格局——2026年生态观察
人工智能
爱查宝小二20 小时前
爱查宝 AIGC 检测与降重能力深度评测
人工智能·aigc
白拾20 小时前
【CVPR 2026】POUR:神经坍缩驱动的可证明最优表示级机器遗忘|从隐私合规与表示几何视角
人工智能·机器遗忘·表示学习·医学影像ai·cvpr 2026·pour 论文分享·神经坍缩
重庆传粉科技21 小时前
AI搜索重构互联网价值交换:GEO如何缓解全域流量流失难题
大数据·人工智能