【问题标题】:See decorated Django view names in NewRelic在 NewRelic 中查看装饰的 Django 视图名称
【发布时间】:2013-10-11 22:05:14
【问题描述】:

我所有的 django 视图方法都有 python 装饰器,这使得 NewRelic 显示包装器方法名称 (wrapped) 而不是视图名称。请参阅下面屏幕截图中的两条底线。

如何解决这个问题?

【问题讨论】:

    标签: django newrelic python-decorators


    【解决方案1】:

    我在 New Relic 工作,我们知道这个问题。为避免这种情况,您可以使用标准库 'functools' 模块中的 'wraps()' 装饰器来包装内部装饰器函数,如下所示:

    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

    【讨论】:

      【解决方案2】:

      看看functools.wrap这将确保被装饰函数的__name__属性不是装饰器的名称(但它保留了内部函数的名称)

      【讨论】:

        猜你喜欢
        • 2018-10-18
        • 2012-08-02
        • 2015-06-25
        • 2012-02-28
        • 1970-01-01
        • 2016-10-24
        • 1970-01-01
        • 2021-07-12
        • 1970-01-01
        相关资源
        最近更新 更多