Change Log
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.