0

我正在使用 Rollbar 对我的 Django 应用程序进行错误跟踪。出于某种原因,我从本地主机(开发中)收到错误。

设置.py:

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:

from settings import *

DEBUG = True
TEMPLATE_DEBUG = True
THUMBNAIL_DEBUG = True

我将 settings_dev.py 用于我的本地开发环境。

4

3 回答 3

1

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

因此,对于您的情况,您可以拥有settings_base.py

THUMBNAIL_DEBUG = False
DEBUG = False
TEMPLATE_DEBUG = False

对于settings_production.py

from settings_production import *

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

rollbar.init(**ROLLBAR)

这样,Rollbar 将仅在生产中启用。

于 2018-08-29T03:58:00.710 回答
0

如今,您似乎可以使用以下"enabled"设置:

ROLLBAR = {
    'access_token': '****',
    'environment': 'development' if DEBUG else 'production',
    'root': BASE_DIR,
    'class': 'rollbar.logger.RollbarHandler',
    'enabled': not DEBUG,
}
于 2019-09-04T08:35:41.720 回答
0

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

通过有效负载处理程序

添加有效负载处理程序以忽略所有有效负载到滚动条。

import rollbar

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

rollbar.events.add_payload_handler(_payload_handler_to_disable_rollbar)

如果使用 pytest,请根据此答案./confest.py在函数中定义上述内容。pytest_sessionstart

通过猴子补丁

Monkeypatchrollbar.report_exc_info禁用它。

import rollbar

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

rollbar.report_exc_info = _disabled_rollbar_report_exc_info

如果使用 pytest,请根据此答案./confest.py在函数中定义上述内容。pytest_sessionstart

通过 /etc/hosts

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

$ sudo echo '127.0.0.1 api.rollbar.com' >> /etc/hosts
$ sudo dscacheutil -flushcache  # On Mac to flush the DNS cache.
于 2021-11-09T23:01:05.523 回答