A Python logging filter for Django user attributes.
Project description
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.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e38cd22f92ab4bd9fdfe30ddb77bab1f6b085a3012f2e0a96605761ed227311
|
|
| MD5 |
017ccfaf0e4470072ab13dfb3341bd58
|
|
| BLAKE2b-256 |
aada92a1aa1eedc96abe22d53866a3afb81bfed047d811fa3e88bf38925ed5f4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb220005709d3e0beaf7a13412a944c1ace55299215c1ebf4d6048bcf5338ec7
|
|
| MD5 |
10d42e9827b1e4d14c3a56973d01c8c8
|
|
| BLAKE2b-256 |
861f09aec919058d20e5f09dd0ba33eb5bfaff6cb46c9afa460d3ed78ea1ec0a
|