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

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

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

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
相关推荐
2601_966949654 分钟前
如何利用 1 分钟 K 线在 14:50 精准捕捉尾盘异动?Python 量化实战:1 分钟 K 线 + 全市场扫描
开发语言·人工智能·python·量化·quantdash·量化数据源
码视野4 分钟前
基于 Vue3 + Element Plus 的【无人值守共享自习室与空间智能预约系统】设计与实现(含PRD/三端源码/大屏)
前端·javascript·vue.js·人工智能·vue3
海天一色y5 分钟前
强化学习工具函数详解:从经验回放到优势函数计算
人工智能·python·强化学习
yuhulkjv3358 分钟前
告别复制粘贴式降级:纳米AI鸿蒙版导出word格式为何绕不开“AI 导出鸭”
人工智能·ai·word·harmonyos·ai导出鸭
故七月11 分钟前
生成式引擎优化(GEO)的底层逻辑与产业实践
大数据·人工智能·机器学习
MacroZheng15 分钟前
又一个神级画图Skill开源,再见draw.io!
java·人工智能·后端
船厂电气自动化ai大模型15 分钟前
AI大模型与数学·第56课 快速傅里叶变换FFT:DFT高效优化算法,图像、音频、扩散模型工程加速核心工具
数据结构·人工智能·深度学习·算法·机器学习
TWT12116 分钟前
用 TRAE Work 5 分钟搞定技术周报,再也不用周五下午憋字了
人工智能
AI导出鸭18 分钟前
腾讯ima的LaTeX生成PDF文件复制后数学公式乱码,怎样修改?AI导出鸭苹果版硬核拆解
人工智能·pdf·ai导出鸭
TechEdu20260619 分钟前
[人工智能]Kimi(月之暗面 Moonshot AI):长上下文、智能体与工程实践
人工智能·ai