当前位置: 首页 > news >正文

python的日志使用装饰器,记录的日志文件记录

 

python的日志使用装饰器

log.py

import logging
from functools import wraps
import os# --- 1. 日志配置(创建日志文件) ---
LOG_FILENAME = 'function_calls.log'# 确保在开始时清除旧日志文件,便于演示
if os.path.exists(LOG_FILENAME):os.remove(LOG_FILENAME)logging.basicConfig(level=logging.INFO,  # 设置最低记录级别为 INFOformat='%(asctime)s - %(levelname)s - %(message)s',filename=LOG_FILENAME,  # 日志文件名称filemode='a',  # 使用追加模式 ('a'),记录多次函数调用
)logger = logging.getLogger(__name__)# --- 2. 日志装饰器 ---
def log_function_call(func):"""
    一个简单的装饰器,用于记录函数的调用和返回结果。"""
@wraps(func)def wrapper(*args, **kwargs):# 记录函数调用信息args_repr = [repr(a) for a in args]kwargs_repr = [f"{k}={repr(v)}" for k, v in kwargs.items()]signature = ", ".join(args_repr + kwargs_repr)logger.info(f"调用函数 {func.__name__},参数: ({signature})")try:# 调用原函数result = func(*args, **kwargs)# 记录函数返回结果logger.info(f"函数 {func.__name__} 执行完毕,返回结果: {repr(result)}")return resultexcept Exception as e:# 记录异常信息logger.error(f"函数 {func.__name__} 执行失败,异常: {e}", exc_info=True)raise  # 重新抛出异常,保持原函数的行为return wrapper

在main函数导入

from log import log_function_call#在def上面@使用
#@log_function_call
#def write_json_file(data):  # 写入json

image

 

http://www.gsyq.cn/news/63358.html

相关文章:

  • 【pandas基础】用Pandas处理泰坦尼克号获救数据
  • why I can not fully accept měigu is good
  • is měigu good
  • Day26透明度
  • 自指自洽,磨砺洗礼,人非圣贤,孰能无过?塞翁失马,焉知非福?
  • MateChat + DevUI + DeepSeek:教育智能答疑助手改造实践
  • 量子计算新突破:高精度量子比特控制技术
  • CAD 二次开发应用 获取统计单行字体内的特定数据
  • CF2157E Adjusting Drones
  • JSON序列化类
  • Educational Codeforces Round 146 简解
  • 选购攻略!2025 厨余处理器 7大品牌,中餐适配款优先级推荐
  • WPF populate BooksCollection via Dispatcher.InvokeAsync,DispatcherPriority.Background in mvvm
  • 2025 年 12 月 AMC12 竞赛备考:上海补课机构优选,选对助力高效冲分
  • 2025年度绍兴交通事故优秀律师推荐|聚焦实力与口碑
  • 最小链覆盖 - Dilworth 定理 小记
  • 有种人
  • re笔记3
  • [题解]2024CCPC郑州站——Z-order Curve
  • 关于字符串的小记
  • 机器人设备端AI技术实现突破
  • 251127今天是学习的一天
  • 金融科技中网络安全的关键作用
  • 否定之否定的辩证法,谁会不承认?但又有多少人说的透?
  • Windows Update - Part 5: Timeline [discarded draft]
  • 工业4.0新范式:MCP服务器如何重构智能制造数据流 - 详解
  • MySQL性能分析(六)之PS监控SQL性能
  • Go语言设计模式:适配器模式详解 - 实践
  • 【第一周:Python 测试开发核心错题集 避坑指南】
  • 20251127周四日记