Migrating to structlog 25.4.0
Version 25.4.0 introduces 1 breaking change. This guide details how to update your code.
Released: 6/2/2025
1
Breaking Changes
2
Migration Steps
3
Affected Symbols
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
structlog.stdlib.filter_by_levelstructlog.tracebacks.Stackstructlog.processors.ExceptionPrettyPrinterBreaking Changes
●Issue #1
Python 3.13.4 (and backported to 3.14) changes `logging.Logger.isEnabledFor()` to always return False while a log entry is in flight, which breaks `structlog.stdlib.filter_by_level()`. Upgrade structlog to this release before upgrading Python to avoid loss of log filtering.
Migration Steps
- 1If your code uses `structlog.stdlib.filter_by_level()`, upgrade to structlog 25.4.0 before upgrading to Python 3.13.4 or 3.14.
- 2No code changes required for the new exception‑group support; the new fields are added to `structlog.tracebacks.Stack`.
Release Summary
Version 25.4.0 adds Python 3.13.4/3.14 support and exception‑group handling, fixes ExceptionPrettyPrinter formatting, and introduces a breaking change for `filter_by_level()` on the new Python releases.
Need More Details?
View the full release notes and all changes for structlog 25.4.0.
View Full Changelog