我的所有django視圖方法都有python裝飾器,這使得NewRelic顯示包裝器方法名稱(wrapped
)而不是視圖名稱。請參閱下面屏幕截圖中的兩條底線。在NewRelic中查看裝飾過的Django視圖名稱
這怎麼解決?
我的所有django視圖方法都有python裝飾器,這使得NewRelic顯示包裝器方法名稱(wrapped
)而不是視圖名稱。請參閱下面屏幕截圖中的兩條底線。在NewRelic中查看裝飾過的Django視圖名稱
這怎麼解決?
我的工作對於New Relic,我們意識到這個問題。爲了避免它,你可以使用標準庫中的「functools」模塊「包裹()」裝飾包裹內裝飾功能,像這樣:
import functools
def decorator(f):
@functools.wraps(f)
def _decorator():
f()
return _decorator
@decorator
def foo():
pass
看到這個文檔獲取更多詳情:https://newrelic.com/docs/python/python-tips-and-tricks#decorators_and_introspection
看一看functools.wrap這將確保裝飾功能的__name__
屬性不是裝飾的名稱(但它使內部函數的名稱)