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

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

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

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
相关推荐
桃西西呀1 小时前
LangChain 之五:智能体与工具
人工智能·langchain·llm
bullkingluo1 小时前
从零到一搭建企业级智能问答系统:Ch11 ·大模型调参与效果评测
人工智能·架构·llm
模拟器连接器曾工1 小时前
一进多出M12分线盒4口8口12口可选 PNP和NPN通用传感器集线器
网络·人工智能·m12分线盒·npn通用传感器集线器·pnp通用传感器集线器
回眸&啤酒鸭1 小时前
GLM 5.3 Flash 批量处理实战指南
大数据·人工智能
伞伞悦读1 小时前
【第53期】有序插入把二叉搜索树变成链:别只看“树”的名字
python
羲云1 小时前
用 AceData Studio 做 AI 短片:从分镜、首帧到参考图编辑
人工智能
硅谷秋水1 小时前
EmbodiedSWE:面向长时程灵巧机器人的编程智能体
人工智能·机器学习·语言模型·机器人·软件工程
郝学胜_神的一滴1 小时前
AI 编程智能体 04:一文看懂智能体的核心能力与概念辨析
人工智能·python
科技研学社2 小时前
外贸订单回流与关税新规下,服装工厂技改如何突围
大数据·人工智能
RobinDevNotes2 小时前
大模型3D并行训练怎么配才不浪费算力
网络·人工智能·深度学习·深度优先