首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django:在开发中禁用RollBar

Django:在开发中禁用RollBar
EN

Stack Overflow用户
提问于 2018-08-29 11:54:30
回答 3查看 382关注 0票数 0

我正在为我的Django应用程序使用Rollbar进行错误跟踪。由于某些原因,我从我的localhost (开发中)得到了错误。

Settings.py:

代码语言:javascript
复制
import rollbar
import os

THUMBNAIL_DEBUG = False
DEBUG = False
TEMPLATE_DEBUG = False

ROLLBAR = {
        'access_token': '****',
        'environment': 'development' if DEBUG else 'production',
        'root': BASE_DIR,
        'class': 'rollbar.logger.RollbarHandler'
    }

rollbar.init(**ROLLBAR)

Settings_Dev.py:

代码语言:javascript
复制
from settings import *

DEBUG = True
TEMPLATE_DEBUG = True
THUMBNAIL_DEBUG = True

我在本地的开发环境中使用settings_dev.py。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-29 11:58:01

我通常创建三个设置文件。第一个是用于既适用于开发又适用于生产的基本设置。另外两个从base导入所有内容,并添加额外的内容。

因此,对于您的情况,可以使用settings_base.py

代码语言:javascript
复制
THUMBNAIL_DEBUG = False
DEBUG = False
TEMPLATE_DEBUG = False

而对于settings_production.py

代码语言:javascript
复制
from settings_production import *

ROLLBAR = {
        'access_token': '****',
        'environment': 'development' if DEBUG else 'production',
        'root': BASE_DIR,
        'class': 'rollbar.logger.RollbarHandler'
    }

rollbar.init(**ROLLBAR)

这样,只有在生产环境中才会启用Rollbar。

票数 1
EN

Stack Overflow用户

发布于 2019-09-04 16:35:42

现在,您似乎可以使用"enabled"设置:

代码语言:javascript
复制
ROLLBAR = {
    'access_token': '****',
    'environment': 'development' if DEBUG else 'production',
    'root': BASE_DIR,
    'class': 'rollbar.logger.RollbarHandler',
    'enabled': not DEBUG,
}
票数 0
EN

Stack Overflow用户

发布于 2021-11-09 23:01:06

这个答案不是特定于Django的,但是它提供了三种禁用rollbar的不同方法

通过有效负载处理程序

添加payload handler以忽略滚动条中的所有有效负载。

代码语言:javascript
复制
import rollbar

def _payload_handler_to_disable_rollbar(payload, **kw) -> bool:
    return False

rollbar.events.add_payload_handler(_payload_handler_to_disable_rollbar)

如果使用pytest,请按照this answer在函数pytest_sessionstart中的./confest.py中定义上述内容。

通过monkeypatching

按键匹配rollbar.report_exc_info以禁用它。

代码语言:javascript
复制
import rollbar

def _disabled_rollbar_report_exc_info(*_args, **_kwargs) -> None:
    pass

rollbar.report_exc_info = _disabled_rollbar_report_exc_info

如果使用pytest,请按照this answer在函数pytest_sessionstart中的./confest.py中定义上述内容。

通过/etc/hosts

更新/etc/hosts以阻止api.rollbar.com

代码语言:javascript
复制
$ sudo echo '127.0.0.1 api.rollbar.com' >> /etc/hosts
$ sudo dscacheutil -flushcache  # On Mac to flush the DNS cache.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52069221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档