Skip to main content

drel

Django request ElasticSearch logging

Django support

To log every django request insert LoggingMiddleware before AuthenticationMiddleware:

# settings.py

MIDDLEWARE = [
    ...,
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "drel.django.LoggingMiddleware",
    ...
]

This will insert request and response info to Elastic Search index called logs-{week_start}-{week_end} in following format:

{
    "timestamp": "2018-12-09 02:22:22",
    "type": "default",
    "request": {
      "url": "https://httpbin.org/post",
      "data": {"param1": "value1"},
      "headers": {}
    },
    "response": {
      "status": 200,
      "data": {"args": {}, "data": "", "files": {}, "form": {"param1": "value1"}, "headers": {"Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Connection": "close", "Content-Length": "13", "Content-Type": "application/x-www-form-urlencoded", "Host": "httpbin.org", "User-Agent": "python-requests/2.19.1"}, "json": null, "origin": "130.193.67.76", "url": "https://httpbin.org/post"}
    },
    "app": "default",
    "request_id": "2180930f-859b-4aef-8770-17107fff1170"
}

Requests support

To log requests request and response data use drel.requests.log function:

>>> from drel.requests import post, log
>>> request, response = post("https://httpbin.org/post", {"param1": "value1"})
>>> log(request, response)

Configuration

To change settings override config module values:

from drel import config

config.APPLICATION = "django_app"

Sample Django configuration

from django.http import HttpRequest
from drel.core import config
from drel.django import mail_admins_on_es_exception

def ignore_logging_handler(request: HttpRequest) -> bool:
    return any([
        request.path == "/api/register_device/",
        request.method != "POST",
    ])


config.ELASTIC_SEARCH_EXCEPTION_HANDLER = mail_admins_on_es_exception
config.INDEX_NAME_GETTER = lambda: "django_app_2019-01-01"
config.APPLICATION = "django_app"
config.IGNORE_LOGGING_HANDLER = ignore_logging_handler

This configuration:

  • mail admins on Elastic Search index exception
  • ignore logging non-POST and /api/register_device/ requests
  • insert docs to django_app_2019-01-01 index
  • application field = django_app

Release files for drel 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for drel 0.5.1
File Size Uploaded
drel-0.5.1.tar.gz 8.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for drel 0.5.1
File Interpreter ABI Platform
drel-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 22.5 kB

Release files / drel-0.5.1.tar.gz

Download URL drel-0.5.1.tar.gz
Size 8.4 kB
Tags Source
SHA-256 checksum
How to use checksums
813ad15274fad96a4e123a61c0d46f6322c7ccccf7e11c3f609b2a3bbf6c3d24
BLAKE2b-256 checksum
How to use checksums
3eb27c3428c785f0f90b08554af29bf9b4a5d455ff95f4c0678d7d24795c242c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5

Release files / drel-0.5.1-py3-none-any.whl

Download URL drel-0.5.1-py3-none-any.whl
Size 14.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
95428c48f1c2e0059773582881b235026ea804c0c02cc29c3f5e43fa50c4b451
BLAKE2b-256 checksum
How to use checksums
4678e2b62103de3376255cc7001c0db6866bd4e1dbf521badb19fee2cae318c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5

Release history Release notifications | RSS feed

This release

0.5.1 This release

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page