装饰器,timer or log
打印日志以及方法运行时间
对于异步方法:
from functools import wraps import traceback import time
def async_time_fun(func): @wraps(func) async def log(*args, **kwargs): start = time.time() try: print(time.strftime("%Y-%m-%d %H:%M:%S") + " start ", func.__name__) result = await func(*args, **kwargs) print("end " + func.__name__ + " total cost time (s) :", str((time.time() - start))) return result except Exception as e: print(f"{func.__name__} is error,here are details:{traceback.format_exc()}") print("end " + func.__name__ + " total cost time (s) :", str((time.time() - start))) return {"status": 500, "message": traceback.format_exc(), "data": None} return log
对于同步方法
from functools import wraps
import traceback
import time
def timefun(func): @wraps(func) def log(*args, **kwargs): start = time.time() try: print("start ", func.__name__) result = func(*args, **kwargs) print("end " + func.__name__ + " total cost time (s) :", str((time.time() - start))) return result except Exception as e: print(f"{func.__name__} is error,here are details:{traceback.format_exc()}") print("end " + func.__name__ + " total cost time (s) :", str((time.time() - start))) return {"status": 500, "message ": str(traceback.format_exc()), "data": None} return log
@timefun def foo(): time.sleep(1) print("I am foo") @timefun def getInfo(): return '----hahah---' f = foo() print(type(f))
time.strftime('%d-%b-%Y', time.localtime(time.time()))
time.strftime("%Y-%m-%d %H:%M:%S")
python中时间日期格式化符号:
- %y 两位数的年份表示(00-99)
- %Y 四位数的年份表示(000-9999)
- %m 月份(01-12)
- %d 月内中的一天(0-31)
- %H 24小时制小时数(0-23)
- %I 12小时制小时数(01-12)
- %M 分钟数(00=59)
- %S 秒(00-59)
- %a 本地简化星期名称
- %A 本地完整星期名称
- %b 本地简化的月份名称
- %B 本地完整的月份名称
- %c 本地相应的日期表示和时间表示
- %j 年内的一天(001-366)
- %p 本地A.M.或P.M.的等价符
- %U 一年中的星期数(00-53)星期天为星期的开始
- %w 星期(0-6),星期天为星期的开始
- %W 一年中的星期数(00-53)星期一为星期的开始
- %x 本地相应的日期表示
- %X 本地相应的时间表示
- %Z 当前时区的名称
- %% %号本身
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2018-11-17 统计