fix(deps): update dependency structlog to v25
This MR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| structlog (changelog) |
==24.4.0 -> ==25.5.0
|
Release Notes
hynek/structlog (structlog)
v25.5.0
Deprecated
-
structlog.dev.ConsoleRenderer()'s pad_event argument has been renamed to pad_event_to to differentiate it from the boolean pad_level argument. pad_event is now deprecated.
Added
-
Added
structlog.dev.ConsoleRenderer.get_active()that returns the currently activestructlog.dev.ConsoleRenderer(). #749 -
structlog.dev.ConsoleRenderer()now supports setting theexception_formatterattribute.You can now disable the pretty-printing of exceptions by setting it to
structlog.dev.plain_traceback:cr = structlog.dev.ConsoleRenderer.get_active() cr.exception_formatter = structlog.dev.plain_tracebackSame goes for sort_keys, columns, colors, force_colors, level_styles, pad_event_to, event_key, timestamp_key, and repr_native_str.
-
Added
structlog.dev.ConsoleRenderer.get_default_column_styles()for reuse the default column styles. #741 -
structlog.testing.capture_logs()now optionally accepts processors to apply before capture. #728 -
structlog.dev.RichTracebackFormatternow exposes the upstream code_width parameter. Default width is nowNonefor full terminal width. Full terminal width is now handled by Rich itself, bringing support for reflow andCOLUMNenvironment variable. Passing-1for width is now deprecated and automatically replaced byNone. #717 -
Native loggers now allow the passing of a dictionary for dictionary-based interpolation
log.info("hello %(name)s!", {"name": "world"}). #748 -
On Python 3.11+,
structlog.processors.CallsiteParameterAddernow supportsCallsiteParameter.QUAL_NAMEthat adds the qualified name of the callsite, including scope and class names. This is only available for structlog-originated events since the standard library has no equivalent. -
structlog.stdlib.LoggerFactorynow supports the stacklevel parameter. #763
Changed
-
structlog.dev.rich_traceback()now throws a more helpful error when Rich is missing. #735
Fixed
-
structlog.processors.MaybeTimeStampernow respects the key argument when determining whether to overwrite the timestamp field. #747 -
structlog.tracebacks.extract()no longer raises aRecursionErrorwhen the cause chain of an exception contains itself. #739 -
Default config now respects
FORCE_COLORon Windows. #758
v25.4.0
Added
-
Support for Python 3.14 and Python 3.13.4.
Python 3.14 has an backwards-incompatible change to
logging.Logger.isEnabledFor()(it now always returns False if a log entry is in flight) that has been backported to 3.13.4 (expected on 2025-06-03). It mainly affectsstructlog.stdlib.filter_by_level(). #723 -
structlog.tracebacksnow handles exception groups.structlog.tracebacks.Stackhas two new fields,is_group: boolandexceptions: list[Trace]. This works similarly to what Rich v14.0.0 does. #720
Fixed
-
structlog.processors.ExceptionPrettyPrinternow respects the exception_formatter arguments instead of always using the default formatter. #724
v25.3.0
Fixed
-
structlog.processors.TimeStampernow again uses timestamps using UTC for custom format strings whenutc=True. #713
v25.2.0
Added
-
structlog.tracebacks.Stacknow includes anexc_notesfield reflecting the notes attached to the exception. #684
Changed
-
structlog.stdlib.BoundLogger's binding-related methods now also returnSelf. #694 -
structlog.processors.TimeStampernow produces internally timezone-awaredatetimeobjects. Default output hasn't changed, but you can now use%zin your fmt string. #709
Fixed
- Expose
structlog.dev.RichTracebackFormatterfor imports. #699 - Expose
structlog.processors.LogfmtRendererfor imports. #701
v25.1.0
Added
-
Add
structlog.stdlib.render_to_log_args_and_kwargsprocessor. Same asstructlog.stdlib.render_to_log_kwargs, but also allows to pass positional arguments tologging. With it, you do not need to addstructlog.stdlib.PositionalArgumentsFormatterprocessor to format positional arguments from structlog loggers. #668 -
Native loggers now have
is_enabled_for()andget_effective_level()methods that mirror the behavior of the standard library'slogging.Logger.isEnabledFor()andlogging.Logger.getEffectiveLevel(). #689
Changed
-
structlog.typing.BindableLoggerprotocol now returnsSelfinstead ofBindableLogger. This adds a dependency on typing-extensions for Pythons older than 3.11. #642 #659 -
structlog.dev.ConsoleRendererwill quote string value with special characters. #647 -
structlog.stdlib.recreate_defaults()now also addsstructlog.stdlib.PositionalArgumentsFormatter. In default native mode, this is done by the loggers at the edge. -
structlog.make_filtering_bound_logger()now also accepts a string for min_level.
Fixed
-
Fix handling calls to
{logger}.exception()outside of exception blocks. Depending on the structlog configuration, this either resulted in an event dict keyexception: "MISSING"or lead to an error. Now, an invalid or missingexc_infowill just be ignored. This means, that calling{logger}.exception()outside of an exception block is basically the same as calling{logger}.error(). #634 #680 -
Instantiating
structlog.dev.ConsoleRendererdoes not mutate the passed styles dict anymore. #669 -
The native
FilteringBoundLogger.fatal()method now maps to the critical level, as it does in the standard library. Note that the level is discouraged to use there, so we recommend to stick toerror()orcritical(). #677 -
structlog.tracebacks.ExceptionDictTransformernow actually acceptsNoneforlocals_max_lengthandlocals_max_string. #675
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.