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

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

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

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
相关推荐
山西茄子几秒前
在NVIDIA Jetson上从`NvBufSurface`获取CUDA访问
人工智能·deepstream
IT古董1 分钟前
AI 资讯日报 | 2026年8月27日:智谱、阿里接连发布并开源高性能大模型,英伟达交出营收翻倍的超预期财报,工信部明确“十五五“AI发展路线图
人工智能·开源
牧羊人.3332 分钟前
动手学深度学习 01:核心组件与完整训练流程
开发语言·人工智能·深度学习
盟接之桥3 分钟前
半导体供应链破局:EDI如何成为中国制造的数字通行证
大数据·运维·服务器·网络·数据库·人工智能·制造
晓晓_za8986684 分钟前
GEO 搜索源码白帽合规改造:适配各大 AI 信源收录规则
java·开发语言·人工智能·性能优化·开源
集芯微电科技有限公司5 分钟前
低压功率MOSFETs选型手册
人工智能·单片机·嵌入式硬件·神经网络·生成对抗网络
爱分享的康康6 分钟前
从“识别已知”到“发现未知”:3D通用目标检测如何打开智驾感知新边界
人工智能·目标检测·3d
俊哥V9 分钟前
每日 AI 研究简报 · 2026-08-28
人工智能·ai
点PY11 分钟前
《一种超分辨率重建方法和相关装置》专利解析
人工智能·计算机视觉·超分辨率重建
张忠琳11 分钟前
【deepseek-harness】Cordis 时空可组合性编程范式 — 三段式精读笔记(一)
ai·agent·deepseek·harness·cordis·dsh