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

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

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

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
相关推荐
熊猫钓鱼>_>7 小时前
用 OHAudioSuite 空间渲染节点搭一座「3D 有声博物馆」——从三种模式到 FreeBuds 头追的实战记录
c++·3d·ai·harmonyos·arkts·audio·ohaudiosuite
ms365copilot7 小时前
Excel Copilot聊天历史|关闭文件后,还能找回之前的AI分析对话
人工智能·excel·copilot
知几蜗牛7 小时前
GPT-6 Astra来了:AI开始从"聊天机器人"进化成数字员工了吗?
人工智能
月华路7 小时前
《模型不玄学》第25章 双头模型:共享底座 + 两个分支
人工智能·深度学习·机器学习
虎头金猫7 小时前
Pic Smaller 本地部署:压缩图片、转换格式,再搭建自己的 Web 工具
运维·前端·开源·aigc·ai编程·ai写作
一次旅行7 小时前
2026‑09‑07 AI产业深度解读|GPT-6 Astra引爆AGI争议、自动化科研落地、对齐监控能力衰减
人工智能·gpt·agi
人工智能培训7 小时前
AI智能体落地价值:从工具赋能到产业重构,解锁企业降本增效新逻辑
人工智能·重构
LPCK_202606227 小时前
生物检测、化工、化学企业的智能体落地:拆出三块共性基石
人工智能
sougeo_geo7 小时前
基于RAG架构的AI品牌心智量化:中立监测平台的技术实现与多模型验证实践
人工智能·架构
盼小辉丶7 小时前
PyTorch计算机视觉(9)——变分自编码器(VAE)详解与实现
人工智能·pytorch·深度学习·计算机视觉