Esempio n. 1
0
def patch_django(g):
    if LOCAL:
        g["INSTALLED_APPS"] += []

        g["MIDDLEWARE_CLASSES"] += []

    if DEBUG:
        log_setting("DEBUG_TOOLBAR", "is on")

        g["DEBUG"] = DEBUG
        g["PAYPAL_TEST"] = DEBUG
        g["INSTALLED_APPS"] += [
            "debug_panel",
            "debug_toolbar",
            "django_extensions",
            # 'devserver',
        ]

        g["MIDDLEWARE_CLASSES"] += [
            # For AJAX requests https://github.com/recamshak/django-debug-panel
            # 'debug_panel.middleware.DebugPanelMiddleware',
            "debug_toolbar.middleware.DebugToolbarMiddleware",
            # 'tempest.core.middleware.ProcessExceptionMiddleware',
            # 'devserver.middleware.DevServerMiddleware',
        ]

        g["DEBUG_TOOLBAR_PANELS"] = [
            "debug_toolbar.panels.versions.VersionsPanel",
            "debug_toolbar.panels.timer.TimerPanel",
            "debug_toolbar.panels.settings.SettingsPanel",
            "debug_toolbar.panels.headers.HeadersPanel",
            "debug_toolbar.panels.request.RequestPanel",
            "debug_toolbar.panels.sql.SQLPanel",
            "debug_toolbar.panels.staticfiles.StaticFilesPanel",
            "debug_toolbar.panels.templates.TemplatesPanel",
            "debug_toolbar.panels.cache.CachePanel",
            "debug_toolbar.panels.signals.SignalsPanel",
            # 'debug_toolbar.panels.logging.LoggingPanel',
            "debug_toolbar.panels.redirects.RedirectsPanel",
            # 'debug_toolbar.panels.profiling.ProfilingPanel',
            # 'debug_toolbar_line_profiler.panel.ProfilingPanel',
        ]

        g["DEVSERVER_MODULES"] = (
            "devserver.modules.sql.SQLRealTimeModule",
            "devserver.modules.sql.SQLSummaryModule",
            "devserver.modules.profile.ProfileSummaryModule",
            # Modules not enabled by default
            "devserver.modules.ajax.AjaxDumpModule",
            "devserver.modules.profile.MemoryUseModule",
            "devserver.modules.cache.CacheSummaryModule",
            "devserver.modules.profile.LineProfilerModule",
        )
Esempio n. 2
0
def patch_geoip(g):
    # GeoIP databases are sometimes stored at an alternate path
    if not g.get("GEOIP_PATH"):
        log_setting("GEOIP", "is off")
        return

    if not (path(g["GEOIP_PATH"]) / g["GEOIP_CITY"]).exists():
        g["GEOIP_PATH"] = "/usr/local/var/GeoIP"

    if not (path(g["GEOIP_PATH"]) / g["GEOIP_CITY"]).exists():
        g["GEOIP_CITY"] = "GeoLiteCity.dat"

    log_setting("GEOIP", "is on")
Esempio n. 3
0
def patch_sentry(g):
    if LOCAL or TEST:
        log_setting("RAVEN", "is off")
        g.get("RAVEN_CONFIG", {})["dsn"] = None
    else:
        log_setting("RAVEN", "is on")
Esempio n. 4
0
def patch_redis(g):
    REDIS_URL = env_or("REDIS_URL", None)
    if REDIS_URL:
        log_setting("REDIS_URL", REDIS_URL)
        g["REDIS_URL"] = REDIS_URL
Esempio n. 5
0
def patch_logging(g, key="LOGGING"):
    # level presets
    debug_simple = {"level": "DEBUG", "handlers": ["console-simple"], "propagate": False}

    info_simple = {"level": "INFO", "handlers": ["console-simple"], "propagate": False}

    info_verbose = {"level": "INFO", "handlers": ["console"], "propagate": False}

    error_verbose = {"level": "ERROR", "handlers": ["console"], "propagate": False}

    # logging dict sections
    filters = {
        "require_debug_false": {"()": "django.utils.log.RequireDebugFalse"},
        "require_debug_true": {"()": "django.utils.log.RequireDebugTrue"},
    }

    formatters = {
        "verbose": {"format": "%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s"},
        "simple": {"format": "%(levelname)s %(message)s"},
    }

    handlers = {
        "console": {
            "level": "DEBUG",
            "class": "logging.StreamHandler",
            "filters": ["require_debug_false"],
            "formatter": "verbose",
        },
        "console-simple": {
            "level": "DEBUG",
            "class": "logging.StreamHandler",
            "filters": ["require_debug_true"],
            "formatter": "simple",
        },
        "null": {"level": "DEBUG", "class": "logging.NullHandler"},
        "sentry": {
            "level": "ERROR",  # To capture more than ERROR, change to WARNING, INFO, etc.
            "class": "raven.contrib.django.raven_compat.handlers.SentryHandler",
            "filters": ["require_debug_false"],
            "tags": {"custom-tag": "x"},
        },
    }

    local_logging = {
        "version": 1,
        "disable_existing_loggers": True,
        "filters": filters,
        "formatters": formatters,
        "handlers": handlers,
        "root": {"handlers": ["console-simple", "sentry"], "level": "ERROR", "propagate": True},
        "sentry.errors.client.django": debug_simple,
    }

    if DEBUG or LOCAL or VERBOSE:
        log_setting("LOGGING", "is verbose")
        local_logging.setdefault("loggers", {}).update(
            {
                "lindy": debug_simple if DEBUG else info_simple,
                "tests": info_verbose,
                "requests": debug_simple if DEBUG else info_simple,
                "kazoo": error_verbose,
                "heka": debug_simple if DEBUG else info_simple,
                "trace": debug_simple,
            }
        )

        local_logging.setdefault("root", {}).update({"level": "DEBUG"})

    local_logging.setdefault("loggers", {}).update({"": local_logging["root"]})

    LOGGING = g.setdefault(key, {})
    for sub_key, value in local_logging.items():
        if isinstance(value, dict):
            LOGGING.setdefault(sub_key, {}).update(value)
        else:
            LOGGING[sub_key] = value