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

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

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

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 分钟前
不要小瞧y=wx+b
人工智能·chatgpt·程序员
Fu2067215 分钟前
结课项目考试
linux·运维·服务器
workflower7 分钟前
情境感知系统
人工智能·机器学习·设计模式·自然语言处理·机器人
风吹心凉8 分钟前
python3基础2026.7.28
开发语言·python
MXsoft61817 分钟前
## 信创运维2.0的“最后一公里”——国产设备“能用但不好用”,问题出在哪?
运维
曲无忆21 分钟前
LLMs赋能依赖类型证明自动化
python
kisloy27 分钟前
【爬虫入门第2讲】浏览器开发者工具完全指南
人工智能·爬虫·tensorflow
打工的小李31 分钟前
AI干部画像:从海量材料中自动提炼标签,告别“凭感觉”
人工智能
IT小白杨34 分钟前
指纹浏览器安全架构技术评测与API自动化能力对比
经验分享·安全·自动化·业界资讯·安全架构·指纹浏览器
Chengbei1138 分钟前
云安全漏洞挖掘SKILL、一站式云漏洞挖掘工具,支持S3爆破、IMDS探测、K8s检测与AK/SK权限利用
前端·人工智能·网络安全·云原生·容器·kubernetes·系统安全