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

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

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

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
相关推荐
湘-枫叶情缘14 小时前
穿透范畴的迷雾:从“四范式”到AI问题建模的现代认知框架
人工智能
@不误正业14 小时前
OpenHarmony-A2A协议实战-多智能体跨应用协同架构与实现
人工智能·架构·harmonyos·开源鸿蒙
前端.火鸡14 小时前
如何使用本地显卡算力给AI赋能(文生图、图生图等)分币不要、无限次数
人工智能
cyyt14 小时前
深度学习周报(4.27~5.3)
人工智能·深度学习
圣殿骑士-Khtangc14 小时前
大模型长任务自动化的迷思——信息熵定律的视角
人工智能
帅气的钟先生14 小时前
OpenClaw + QQBot 实战:从 0 到 1 搭建你的消息自动化助手
运维·人工智能·自动化
Mr -老鬼14 小时前
EasyClick 双端自动化智能体|Android&iOS 全平台 EC 脚本开发助手
android·ios·自动化·易点云测·#easyclick·#ios自动化
techdashen14 小时前
把 Matrix 聊天服务器搬到 Serverless 上,还顺便免费升级了量子加密
运维·服务器·serverless
王莎莎-MinerU14 小时前
从 PDF 到知识资产:MinerU 文档解析如何成为企业 RAG 系统的“数据基石”
大数据·人工智能·pdf·个人开发
医工交叉实验工坊14 小时前
PyMol插件自动可视化蛋白与配体(小分子药物)相互作用位点
人工智能