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

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

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

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
相关推荐
福建佰胜张工3 分钟前
西门子 ULTRAMAT23 分析仪 7MB2337‑0NH10‑3PW1 原理、调试、故障处理与现场运维全记录
大数据·运维·人工智能·自动化
__如果3 分钟前
医学大论文行文思路
人工智能
吨吨ai3 分钟前
Codex 实战:用 Git 分支 + pytest 构建可回滚的 AI 开发流程(2026年8月27日)
人工智能·git·pytest
啦啦啦啦啦zzzz4 分钟前
ET和LT详解
linux·运维·服务器·网络·c++·网络编程
科技新芯4 分钟前
2026年国内可用AI生图网站实测:ImageGood、ChatGPT、Gemini、Firefly怎么选?
人工智能·chatgpt
jkyy20146 分钟前
从商品售卖到健康服务,数字化重构大健康品牌会员运营底层逻辑
大数据·人工智能·信息可视化·健康医疗
田径他爸来了7 分钟前
嵌入式学习第32天(同时多个用户访问的服务器)
运维·服务器·学习
yangshuo12818 分钟前
用AI开发一个公网IP查询小工具:精准查询IDE/终端的真实出口IP(Python实战)
ide·人工智能·tcp/ip
架构技术专栏9 分钟前
Skill 写了几十条规则,Codex 为什么还是不按你的方式干活?
人工智能
wefg19 分钟前
C++ 仿 muduo 库实现高并发服务器
运维·服务器