Change Log
9.0.0 (November 26, 2024)
See: Upgrading to 9.0+
- New:
- Changes:
RequestMiddleware
now relies on django signal got_request_exception instead of Middleware process_exception method. See #705, #658 and Upgrading to 9.0+. Special thanks to @sshishov.Add python 3.13 support. See #674.
Drop python 3.8 support. See #674.
Django 5.1 and celery 5.4 support. See #617.
- Other:
Migrated project to use python 3.13 along with readthedocs generation.
now use isort
fixed
codecov
github action that was not properly configured and therefore not properly reporting coverage.
8.1.0 (May 24, 2024)
8.0.0 (March 13, 2024)
See: Upgrading to 8.0+
- New:
add
log_kwargs
todjango_structlog.signals.bind_extra_request_metadata
,django_structlog.signals.bind_extra_request_finished_metadata
, anddjango_structlog.signals.bind_extra_request_failed_metadata
. See #484. Special thanks to @shtoltz.
7.1.0 (December 20, 2023)
- New:
add
asgi
’s async view cancellation eventrequest_cancelled
. See #413 and and Request Events.
7.0.0 (December 13, 2023)
See: Upgrading to 7.0+
- New:
(celery) add
priority
(if available) androuting_key
totask_enqueued
. See #345 and #341. Special thanks to badziyoussef.Django 5.0 support. See #350. Take note async view cancellation when using
asgi
does not work yet, see #351.Add streaming response support (for both sync and async) and Django 5’s async cancellation. See #353 and StreamingHttpResponse Events.
- Changes:
Supports django-ipware 6+ only. See #403. Special thanks to the maintainer @un33k.
Drop support of django 4.0. See #338. Special thanks to @jairhenrique.
- Other:
- Improved demo project
Better UI
Easy switch between
runserver_plus
,wsgi
anasgi
Front-end request feedbacks using
toasts
6.0.1 (November 29, 2023)
- Fixes:
freeze
django-ipware<6
for now due to breaking changes. See #388
6.0 (October 3, 2023)
See: Upgrading to 6.0+
- New:
- Fixes:
Add missing metadata when a task is revoked. See #317. Special thanks to @badziyoussef.
- Changes:
Drop support of python 3.7
Drop legacy code still supporting celery < 4
- Removal of deprecated:
django_structlog.middlewares.CeleryMiddleware
django_structlog.middlewares.SyncRequestMiddleware
django_structlog.middlewares.AsyncRequestMiddleware
django_structlog.middlewares.request_middleware_router
4XX
status codes now log by default asWARNING
and5XX
asERROR
. The behaviour of4XX
can be customized with Configuration. See #308. Special thanks to @adinhodovic.task_revoked
’ssignum
is now an integer instead of an object. See #323.task_not_found
’smessage
was removed and replaced bytask_id
andtask
. See #323.task_rejected
’smessage
was removed and replaced bytask_id
. See #323.Switched from
git
’smaster
tomain
branch
- Other:
Add new How Tos section in the documentation.
5.3.0 (June 30, 2023)
- New:
django setting
DJANGO_STRUCTLOG_CELERY_ENABLED = True
replacingdjango_structlog.middlewares.CeleryMiddleware
. See Upgrading to 6.0+ and #265. Also introduce new internal app_settings that may come handy for future configurations.
- Deprecations:
django_structlog.middlewares.CeleryMiddleware
(see above).
5.2.0 (June 29, 2023)
- New:
Add new event
task_started
. See #260. Special thanks to @adrenaline681.
5.1.0 (April 22, 2023)
- New:
Add new signal
django_structlog.signals.update_failure_response
allowing to modify the response in case of failure. See #231. Special thanks to @HMaker.
5.0.2 (April 16, 2023)
See: Upgrading to 5.0+
5.0.1 (March 24, 2023)
See: Upgrading to 5.0+
5.0.0 (March 23, 2023)
See: Upgrading to 5.0+
- Changes:
RequestMiddleware
andCeleryMiddleware
now properly support async views
- Removed:
(Rolled back in 5.0.2)
django_structlog.signals.bind_extra_request_failed_metadata
- Deprecates:
django_structlog.middlewares.request_middleware_router
django_structlog.middlewares.requests.AsyncRequestMiddleware
django_structlog.middlewares.requests.SyncRequestMiddleware
4.1.1 (February 7, 2023)
- New:
Add
django_structlog.middlewares.request_middleware_router
to choose automatically between Async or Sync middleware
- Rollbacks from 4.1.0:
Rollback
RequestMiddleware
not being a class anymore, its an internalSyncRequestMiddleware
- Others:
Migrate project to
pyproject.toml
instead ofsetup.py
Add asgi server to demo project see Development.
4.1.0 (February 4, 2023)
- New:
Add async view support. See #180. Special thanks to @DamianMel.
- Changes:
RequestMiddleware
is no longer a class but a function due to async view support. This should only affect projects using the middleware not as intended. If this cause you problems, please refer to this issue #183, the documentation or feel free to open a new issue. Special thanks to @gvangool for pointing that out.
- Others:
Add colours in log in the demo project. See 63bdb4d to update your projects. Special thanks to @RoscoeTheDog.
Upgrade or remove various development packages
4.0.1 (October 25, 2022)
- New:
Add support to
python
3.11. See #142. Special thanks to @jairhenrique.
4.0.0 (October 22, 2022)
See: Upgrading to 4.0+
- Changes:
django-structlog
will now on follow LTS versions of Python, Django, and Celery. See #110. Special thanks to @jairhenrique for his convincing arguments.
- New:
You can now install
django-structlog
withcelery
extra. Specifyingdjango-structlog[celery]==4.0.0
inrequirements.txt
will make sure yourcelery
’s version is compatible.
- Others:
Upgrade or remove various development packages
Upgrade local development environment from python 3.7 to 3.10 and from django 3.2 to django 4.1
Added a gh-pages
3.0.1 (August 2, 2022)
- Fixes:
- Others:
Add
dependabot
to manage dependencies. See #83. Special thanks to @jairhenrique.Upgrade various development packages
3.0.0 (August 1, 2022)
See: Upgrading to 3.0+
- Changes:
django-structlog
now usesstructlog.contextvars
instead ofstructlog.threadlocal
. See the upgrade guide for more information (Upgrading to 3.0+) and #78. Special thanks to @AndrewGuenther and @shimizukawa.removed
django_structlog.processors.inject_context_dict
minimum requirements change to
python
3.7+minimum requirements change to
structlog
21.5
- New:
Add python 3.10, celery 5.2 and django 4.0 to the test matrix.
- Others:
Remove
wrapper_class
from the configuration
2.2.0 (November 18, 2021)
2.1.3 (September 28, 2021)
- Fixes:
Implement Celery Task.throws’ behaviour of logging expected exception as
INFO
with no tracebacks. See #62 and #70. Special thanks to @meunomemauricio.
2.1.2 (August 31, 2021)
- Fixes:
django.core.exceptions.PermissionDenied
is no longer logged as 500 but 403. See #68. Special thanks to @rabbit-aaron.
2.1.1 (June 22, 2021)
- Others:
Add
django
3.2 andpython
3.9 to the test matrix andpypi
metadata. See #65. Special thanks to @kashewnuts.
2.1.0 (November 26, 2020)
2.0.0 (November 25, 2020)
- Upgrade:
There are necessary configuration changes needed. See Upgrading to 2.0+ for the details.
- Changes:
No longer add
error
anderror_traceback
. See #55 and Upgrading to 2.0+. Special thanks to @debfx.
- Fixes:
Fix crash when request’s user is
None
for django-oauth-toolkit. See #56. Special thanks to @nicholasamorim.
1.6.3 (November 11, 2020)
1.6.2 (October 4, 2020)
- Fixes:
Fix UUID as User pk causing issues. See #52 #45 and #51. Special thanks to @fadedDexofan.
1.6.1 (August 13, 2020)
- Fixes:
- Others:
Add
django
3.0 and 3.1 to the test matrix andpypi
supported frameworks metadataFix reference of the previous ci in the documentation
1.6.0 (June 17, 2020)
- Changes:
task_succeed
is nowtask_succeeded
. Special thanks to @PawelMorawian.Remove
result
fromtask_succeeded
log (may be added back, see below). Special thanks to @PawelMorawian as well.Add
django_structlog.celery.signals.pre_task_succeeded
. To be able to bindresult
if someone really needs it.
1.5.5 (June 16, 2020)
1.5.4 (June 15, 2020)
- Improvements:
Remove redundant
DJANGO_STRUCTLOG_LOG_USER_IN_REQUEST_FINISHED
setting and just always make sureuser_id
is inrequest_finished
andrequest_failed
instead. See #37.
1.5.3 (June 15, 2020)
- New:
Add
DJANGO_STRUCTLOG_LOG_USER_IN_REQUEST_FINISHED
setting to support Django REST framework. See #37. Special thanks to @immortaleeb.
1.5.2 (April 2, 2020)
- New:
Add
modify_context_before_task_publish
signal.
1.5.1 (March 18, 2020)
1.5.0 (March 6, 2020)
1.4.1 (February 8, 2020)
- New:
Bind
X-Correlation-ID
HTTP header’s value ascorrelation_id
when provided in request.
1.4.0 (February 7, 2020)
- New:
Use
X-Request-ID
HTTP header’s value asrequest_id
when provided in request. See #22. Special thanks to @jairhenrique
1.3.5 (December 23, 2019)
- New:
Add python 3.8, celery 4.4 and django 3.0 to the test matrix.
- Improvements:
Extract
test_app
fromdjango_structlog_demo_app
in order to testdjango_structlog
all by itselfImprove CI execution speed by merging stages
Upgrade a few development depencencies
1.3.4 (November 27, 2019)
- Bugfix:
Exception logging not working properly with
DEBUG = False
. See #19. Special thanks to @danpalmer
1.3.3 (October 6, 2019)
1.3.2 (September 21, 2019)
1.3.1 (September 4, 2019)
1.3.0 (September 3, 2019)
- Improvements:
Improve django uncaught exception formatting. See #7. Special thanks to @paulstuartparker
1.2.3 (May 18, 2019)
- Bugfixes:
Fix
structlog
dependency not being installed
- Improvements:
Use black code formatter
1.2.2 (May 13, 2019)
- Improvements:
Use appropriate packaging
1.2.1 (May 8, 2019)
- Bugfixes:
Fix missing license file to be included in distribution
1.2.0 (May 8, 2019)
- Changes:
In the event
task_enqueued
,task_id
andtask_name
are renamedchild_task_id
andchild_task_name
respectively to avoid override oftask_id
in nested tasks.
1.1.6 (May 8, 2019)
- New:
Add
task_name
when a task is enqueued
1.1.5 (May 8, 2019)
- New:
Add support of tasks calling other tasks (introducing
parent_task_id
)
- Bugfixes:
Fix missing packages
1.1.4 (April 22, 2019)
- Improvements:
Wheel distribution
1.1.3 (April 22, 2019)
- Improvements:
api documentation
code documentation
1.1.2 (April 19, 2019)
- Changes:
Rewrite the log texts as events
1.1.1 (April 18, 2019)
- New:
Add
celery
signalsignals.bind_extra_task_metadata
1.1 (April 16, 2019)
- New:
Add
celery
tasks support
1.0.4 to 1.0.7 (April 14, 2019)
- New:
Automated releases with tags on
travis
1.0.3 (April 14, 2019)
- Bugfixes:
Add
bind_extra_request_metadata
documentation
1.0.2 (April 13, 2019)
- Bugfixes:
Tweaked documentation.
1.0.0 (April 13, 2019)
- New:
Fist public release.