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

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

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

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 分钟前
机器人长尾场景数据采集:实操方法论与成本控制
大数据·人工智能
lifallen10 分钟前
第六章 MCP:把能力接入协议化
人工智能·ai·语言模型·ai编程
code 小楊13 分钟前
AI Agent记忆系统全解析:从基础到前沿
人工智能
niuniuyi~14 分钟前
科研阶段记录2-下
人工智能·知识图谱
workflower15 分钟前
医院核心竞争力的四大重构
人工智能·安全·设计模式·重构·动态规划·scrum
zhangfeng113315 分钟前
车载gpu 飞地 只保存密钥 不保存 权重 Orin确实有TEE安全飞地(TSEC/OP-TEE)
服务器·网络·人工智能·安全·transformer·芯片
Drgfd16 分钟前
长期主义者汪进进:能效电气重构充电桩行业价值逻辑
人工智能·重构
YOLO数据集集合16 分钟前
配电站智能运维|变电一次设备识别|高压电气构件目标检测数据集|电力巡检
运维·人工智能·深度学习·yolo·目标检测·视觉检测
keyipatience16 分钟前
25.Linux静态动态库全解析
linux·运维·服务器
zhangfeng113322 分钟前
google gmini大语言模型 的数据预训练 flan等方法 介绍下
人工智能·transformer