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

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

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

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
相关推荐
快乐の番薯5 分钟前
卷王问卷考试系统自动化功能测试
运维·功能测试·自动化
hzxxxz14 分钟前
端到端测速数据采集实战:从节点部署到指标口径的完整链路
人工智能
林伽一16 分钟前
能力趋同、账单分化,技术选型正在从榜单转向负载|2026年10月06日
人工智能·科技·安全·ai
Jooolin22 分钟前
把 GitHub Issue 的第一轮脏活交给 AI:做一个 Issue 分诊助手
人工智能·github
GitFun36 分钟前
给策略加了条-8%止损线,11年只触发1次
python·股票·量化交易
一号弯40 分钟前
装完LINUX,请先新建日常用户
linux·运维·服务器
KIZIFLOW北泽五金1 小时前
气缸动作卡顿故障原因与快速排查方法
自动化·新媒体运营·产品运营·用户运营·内容运营
马六六i1 小时前
市面上正规的IP驱动产业新场景新工具有哪些
大数据·网络·python·tcp/ip
suliqiang1 小时前
AI 编程新范式:Agentic、Vibe 与 Spec 实战指南
ai·ai编程
互联网叫兽1 小时前
RAG 知识库-基于元数据的细粒度权限控制
ai·llm·rag