Skip to main content

A Python logging filter for Django user attributes.

Project description

django-user-trace

A Python logging filter for Django user attributes

Build Coverage Python PyPI

django-user-trace provides a Python logging filter that injects attributes from the currently logged in Django user.

INFO ... john_doe project.views This is a view log, and should have a user.
INFO ... mike_scott project.views This is a view log, and should have a user.
WARNING ... john_doe project.services.file Some warning in a function!

It uses a ContextVar to store user attributes for use on the current thread. These are then injected into all log records via a logging filter.

Visit the documentation.

sequenceDiagram
    actor User
    User ->>+ django: make request
    django ->>+ django.contrib.auth: AuthenticationMiddleware
    django.contrib.auth ->>+ django: set `request.user`
    django ->>+ django_user_trace: django_user_trace_middleware
    note over django, django_user_trace: Capture relevant user attributes into a `ContextVar`
    django_user_trace ->>+ django: continue
    django --> logging: log message
    logging ->>+ django_user_trace: get user attrs
    django_user_trace -->> logging: `ContextVar` for user attrs
    django ->>+ django_user_trace: signal `request_finished`
    note over django, django_user_trace: Clear user attributes from the `ContextVar`
    django_user_trace ->>+ django: continue
    django -->> User: send response

Supports

Resources

Related Projects

Installation

Install via pip:

pip install django-user-trace

Or, via poetry:

poetry add django-user-trace

Contributing

Thank you for considering contributing to django-user-trace! Please see the Contribution Guidelines.

Security Vulnerabilities

Please review the Security Policy on how to report security vulnerabilities.

Licence

django-user-trace is open-sourced software licenced under the MIT licence.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_user_trace-2.2.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_user_trace-2.2.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file django_user_trace-2.2.0.tar.gz.

File metadata

  • Download URL: django_user_trace-2.2.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for django_user_trace-2.2.0.tar.gz
Algorithm Hash digest
SHA256 9e38cd22f92ab4bd9fdfe30ddb77bab1f6b085a3012f2e0a96605761ed227311
MD5 017ccfaf0e4470072ab13dfb3341bd58
BLAKE2b-256 aada92a1aa1eedc96abe22d53866a3afb81bfed047d811fa3e88bf38925ed5f4

See more details on using hashes here.

File details

Details for the file django_user_trace-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: django_user_trace-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for django_user_trace-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cb220005709d3e0beaf7a13412a944c1ace55299215c1ebf4d6048bcf5338ec7
MD5 10d42e9827b1e4d14c3a56973d01c8c8
BLAKE2b-256 861f09aec919058d20e5f09dd0ba33eb5bfaff6cb46c9afa460d3ed78ea1ec0a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page