|
|
|
@@ -1,3 +1,116 @@
|
|
|
|
|
|
|
|
-------------------------------------------------------------------
|
|
|
|
|
|
|
|
Thu Oct 30 08:03:20 UTC 2025 - Michael Vetter <mvetter@suse.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Update to 25.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
|
|
|
|
|
|
|
|
active structlog.dev.ConsoleRenderer(). #749
|
|
|
|
|
|
|
|
* structlog.dev.ConsoleRenderer() now supports setting the exception_formatter attribute.
|
|
|
|
|
|
|
|
* 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_traceback
|
|
|
|
|
|
|
|
Same goes for sort_keys, columns, colors, force_colors, level_styles, pad_event_to,
|
|
|
|
|
|
|
|
event_key, timestamp_key, and repr_native_str. #749 #756 #757 #759
|
|
|
|
|
|
|
|
* 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.RichTracebackFormatter now exposes the upstream code_width parameter.
|
|
|
|
|
|
|
|
Default width is now None for full terminal width. Full terminal width is now handled by
|
|
|
|
|
|
|
|
Rich itself, bringing support for reflow and COLUMN environment variable. Passing -1 for
|
|
|
|
|
|
|
|
width is now deprecated and automatically replaced by None. #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.CallsiteParameterAdder now supports
|
|
|
|
|
|
|
|
CallsiteParameter.QUAL_NAME that 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.LoggerFactory now supports the stacklevel parameter. #763
|
|
|
|
|
|
|
|
Changed:
|
|
|
|
|
|
|
|
* structlog.dev.rich_traceback() now throws a more helpful error when Rich is missing. #735
|
|
|
|
|
|
|
|
Fixed:
|
|
|
|
|
|
|
|
* structlog.processors.MaybeTimeStamper now respects the key argument when determining
|
|
|
|
|
|
|
|
whether to overwrite the timestamp field. #747
|
|
|
|
|
|
|
|
* structlog.tracebacks.extract() no longer raises a RecursionError when the cause chain
|
|
|
|
|
|
|
|
of an exception contains itself. #739
|
|
|
|
|
|
|
|
* Default config now respects FORCE_COLOR on Windows. #758
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------
|
|
|
|
|
|
|
|
Mon Jun 2 17:09:13 UTC 2025 - Michael Vetter <mvetter@suse.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Update to 25.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 affects structlog.stdlib.filter_by_level(). #723
|
|
|
|
|
|
|
|
* structlog.tracebacks now handles exception groups. structlog.tracebacks.Stack has two
|
|
|
|
|
|
|
|
new fields, is_group: bool and exceptions: list[Trace]. This works similarly to what
|
|
|
|
|
|
|
|
Rich v14.0.0 does. #720
|
|
|
|
|
|
|
|
Fixed:
|
|
|
|
|
|
|
|
* structlog.processors.ExceptionPrettyPrinter now respects the exception_formatter
|
|
|
|
|
|
|
|
arguments instead of always using the default formatter. #724
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------
|
|
|
|
|
|
|
|
Mon Apr 28 10:25:13 UTC 2025 - Michael Vetter <mvetter@suse.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Update to 25.3.0:
|
|
|
|
|
|
|
|
* Fix a rather ugly bug where seemingly UTC timestamps in TimeStamper
|
|
|
|
|
|
|
|
had the timestamp from the local timezone when passing utc=True #713
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------
|
|
|
|
|
|
|
|
Wed Mar 12 08:14:09 UTC 2025 - Michael Vetter <mvetter@suse.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Update to 25.2.0:
|
|
|
|
|
|
|
|
Added:
|
|
|
|
|
|
|
|
* structlog.tracebacks.Stack now includes an exc_notes field reflecting
|
|
|
|
|
|
|
|
the notes attached to the exception. #684
|
|
|
|
|
|
|
|
Changed:
|
|
|
|
|
|
|
|
* structlog.stdlib.BoundLogger's binding-related methods now also return Self. #694
|
|
|
|
|
|
|
|
* structlog.processors.TimeStamper now produces internally timezone-aware
|
|
|
|
|
|
|
|
datetime objects. Default output hasn't changed, but you can now use %z in your fmt string. #709
|
|
|
|
|
|
|
|
Fixed:
|
|
|
|
|
|
|
|
* Expose structlog.dev.RichTracebackFormatter for imports. #699
|
|
|
|
|
|
|
|
* Expose structlog.processors.LogfmtRenderer for imports. #701
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------
|
|
|
|
|
|
|
|
Wed Feb 5 08:17:32 UTC 2025 - Michael Vetter <mvetter@suse.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Update to 25.1.0:
|
|
|
|
|
|
|
|
Added:
|
|
|
|
|
|
|
|
* Add structlog.stdlib.render_to_log_args_and_kwargs processor. Same
|
|
|
|
|
|
|
|
as structlog.stdlib.render_to_log_kwargs, but also allows to pass
|
|
|
|
|
|
|
|
positional arguments to logging. With it, you do not need to add
|
|
|
|
|
|
|
|
structlog.stdlib.PositionalArgumentsFormatter processor to format
|
|
|
|
|
|
|
|
positional arguments from structlog loggers. #668
|
|
|
|
|
|
|
|
* Native loggers now have is_enabled_for() and get_effective_level()
|
|
|
|
|
|
|
|
methods that mirror the behavior of the standard library's
|
|
|
|
|
|
|
|
logging.Logger.isEnabledFor() and logging.Logger.getEffectiveLevel(). #689
|
|
|
|
|
|
|
|
Changed:
|
|
|
|
|
|
|
|
* structlog.typing.BindableLogger protocol now returns Self instead
|
|
|
|
|
|
|
|
of BindableLogger. This adds a dependency on typing-extensions for
|
|
|
|
|
|
|
|
Pythons older than 3.11. #642 #659
|
|
|
|
|
|
|
|
* structlog.dev.ConsoleRenderer will quote string value with special characters. #647
|
|
|
|
|
|
|
|
* structlog.stdlib.recreate_defaults() now also adds structlog.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 key
|
|
|
|
|
|
|
|
exception: "MISSING" or lead to an error. Now, an invalid or missing exc_info will
|
|
|
|
|
|
|
|
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.ConsoleRenderer does 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 to error() or critical(). #677
|
|
|
|
|
|
|
|
* structlog.tracebacks.ExceptionDictTransformer now actually accepts None for locals_max_length
|
|
|
|
|
|
|
|
and locals_max_string. #675
|
|
|
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------
|
|
|
|
-------------------------------------------------------------------
|
|
|
|
Mon Jul 22 08:48:22 UTC 2024 - Michael Vetter <mvetter@suse.com>
|
|
|
|
Mon Jul 22 08:48:22 UTC 2024 - Michael Vetter <mvetter@suse.com>
|
|
|
|
|
|
|
|
|
|
|
|
|