Change Log
10.0.0 (October 22, 2025)
9.1.1 (April 7, 2025)
9.1.0 (April 4, 2025)
- New:
new setting
DJANGO_STRUCTLOG_IP_LOGGING_ENABLED(defaultTrue) to allow to disable ip binding. See #803. Special thanks to @dulguunpc.add
duration_msto the celery tasks metadata. See #796. Special thanks to @ahumeau.
- Fixes:
vary: Cookie was always set. See #734. Special thanks to @last-partizan
- Other:
add support of django 5.2 (just adding it to the test matrix, no code changes)
9.0.1 (January 29, 2025)
- Fixes:
Fix exceptions not being propagated when using streaming response. See #747. Special thanks to @liambuchanan.
9.0.0 (November 26, 2024)
See: Upgrading to 9.0+
- New:
Add type definitions for the project. See #697 and #696. Special thanks to @j00bar and @MaxDude132 for the review.
- Changes:
RequestMiddlewarenow 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
codecovgithub 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_kwargstodjango_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_keytotask_enqueued. See #345 and #341. Special thanks to badziyoussef.Django 5.0 support. See #350. Take note async view cancellation when using
asgidoes 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,wsgianasgiFront-end request feedbacks using
toasts
6.0.1 (November 29, 2023)
- Fixes:
freeze
django-ipware<6for 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.CeleryMiddlewaredjango_structlog.middlewares.SyncRequestMiddlewaredjango_structlog.middlewares.AsyncRequestMiddlewaredjango_structlog.middlewares.request_middleware_router
4XXstatus codes now log by default asWARNINGand5XXasERROR. The behaviour of4XXcan be customized with Configuration. See #308. Special thanks to @adinhodovic.task_revoked’ssignumis now an integer instead of an object. See #323.task_not_found’smessagewas removed and replaced bytask_idandtask. See #323.task_rejected’smessagewas removed and replaced bytask_id. See #323.Switched from
git’smastertomainbranch
- Other:
Add new How Tos section in the documentation.
5.3.0 (June 30, 2023)
- New:
django setting
DJANGO_STRUCTLOG_CELERY_ENABLED = Truereplacingdjango_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_responseallowing 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:
RequestMiddlewareandCeleryMiddlewarenow 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_routerdjango_structlog.middlewares.requests.AsyncRequestMiddlewaredjango_structlog.middlewares.requests.SyncRequestMiddleware
4.1.1 (February 7, 2023)
- New:
Add
django_structlog.middlewares.request_middleware_routerto choose automatically between Async or Sync middleware
- Rollbacks from 4.1.0:
Rollback
RequestMiddlewarenot being a class anymore, its an internalSyncRequestMiddleware
- Others:
Migrate project to
pyproject.tomlinstead ofsetup.pyAdd 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:
RequestMiddlewareis 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
python3.11. See #142. Special thanks to @jairhenrique.
4.0.0 (October 22, 2022)
See: Upgrading to 4.0+
- Changes:
django-structlogwill 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-structlogwithceleryextra. Specifyingdjango-structlog[celery]==4.0.0inrequirements.txtwill 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
dependabotto 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-structlognow usesstructlog.contextvarsinstead 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_dictminimum requirements change to
python3.7+minimum requirements change to
structlog21.5
- New:
Add python 3.10, celery 5.2 and django 4.0 to the test matrix.
- Others:
Remove
wrapper_classfrom 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
INFOwith no tracebacks. See #62 and #70. Special thanks to @meunomemauricio.
2.1.2 (August 31, 2021)
- Fixes:
django.core.exceptions.PermissionDeniedis no longer logged as 500 but 403. See #68. Special thanks to @rabbit-aaron.
2.1.1 (June 22, 2021)
- Others:
Add
django3.2 andpython3.9 to the test matrix andpypimetadata. 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
erroranderror_traceback. See #55 and Upgrading to 2.0+. Special thanks to @debfx.
- Fixes:
Fix crash when request’s user is
Nonefor 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
django3.0 and 3.1 to the test matrix andpypisupported frameworks metadataFix reference of the previous ci in the documentation
1.6.0 (June 17, 2020)
- Changes:
task_succeedis nowtask_succeeded. Special thanks to @PawelMorawian.Remove
resultfromtask_succeededlog (may be added back, see below). Special thanks to @PawelMorawian as well.Add
django_structlog.celery.signals.pre_task_succeeded. To be able to bindresultif 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_FINISHEDsetting and just always make sureuser_idis inrequest_finishedandrequest_failedinstead. See #37.
1.5.3 (June 15, 2020)
- New:
Add
DJANGO_STRUCTLOG_LOG_USER_IN_REQUEST_FINISHEDsetting to support Django REST framework. See #37. Special thanks to @immortaleeb.
1.5.2 (April 2, 2020)
- New:
Add
modify_context_before_task_publishsignal.
1.5.1 (March 18, 2020)
1.5.0 (March 6, 2020)
1.4.1 (February 8, 2020)
- New:
Bind
X-Correlation-IDHTTP header’s value ascorrelation_idwhen provided in request.
1.4.0 (February 7, 2020)
- New:
Use
X-Request-IDHTTP header’s value asrequest_idwhen 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_appfromdjango_structlog_demo_appin order to testdjango_structlogall 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
structlogdependency 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_idandtask_nameare renamedchild_task_idandchild_task_namerespectively to avoid override oftask_idin nested tasks.
1.1.6 (May 8, 2019)
- New:
Add
task_namewhen 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
celerysignalsignals.bind_extra_task_metadata
1.1 (April 16, 2019)
- New:
Add
celerytasks 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_metadatadocumentation
1.0.2 (April 13, 2019)
- Bugfixes:
Tweaked documentation.
1.0.0 (April 13, 2019)
- New:
Fist public release.