- 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:
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-structlog?expand=0&rev=34
This commit is contained in:
547
python-structlog.changes
Normal file
547
python-structlog.changes
Normal file
@@ -0,0 +1,547 @@
|
||||
-------------------------------------------------------------------
|
||||
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>
|
||||
|
||||
- Update to 24.4.0:
|
||||
* This is just a docs / PyPI README update. No code changes whatsoever.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 22 08:46:41 UTC 2024 - Michael Vetter <mvetter@suse.com>
|
||||
|
||||
- Update to 24.3.0:
|
||||
* Restore feature parity between structlog.traceback.ExceptionDictTransformer
|
||||
and Rich's traceback extractor #627
|
||||
+ When displaying locals, use Rich for formatting if it is available.
|
||||
+ When displaying locals, call repr() on strings, too (improves handling of
|
||||
SecretStr implementations).
|
||||
+ Add locals_max_length config option
|
||||
+ Add locals_hide_sunder config option
|
||||
+ Add locals_hide_dunder config option
|
||||
+ Add suppress config option
|
||||
* structlog.testing.capture_logs() now maps the exception log level to
|
||||
error (as it's elsewhere) #628
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 10 08:28:13 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 24.2.0:
|
||||
* It is now possible to disable log level-padding in
|
||||
`structlog.dev.LogLevelColumnFormatter` and
|
||||
`structlog.dev.ConsoleRenderer`.
|
||||
* The `structlog.processors.CallsiteParameterAdder` can now be
|
||||
pickled.
|
||||
* `structlog.processors.CallsiteParameterAdder` now also works
|
||||
with `structlog.stdlib.BoundLogger`'s non-standard async
|
||||
methods (`ainfo()`, and so forth)
|
||||
* `structlog.processors.LogfmtRenderer` now escapes newlines.
|
||||
* `structlog.processors.LogfmtRenderer` now escapes backslashes
|
||||
and double quotes.
|
||||
* `structlog.processors.CallsiteParameterAdder` has been
|
||||
optimized to be about 2x faster.
|
||||
* `structlog.stdlib.render_to_log_kwargs` now correctly passes
|
||||
stacklevel as a kwarg to stdlib logging.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 24 07:35:08 UTC 2024 - ecsos <ecsos@opensuse.org>
|
||||
|
||||
- Add %{?sle15_python_module_pythons}
|
||||
https://en.opensuse.org/openSUSE:Packaging_Python
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jan 14 15:12:14 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 24.1.0:
|
||||
* The lazy logger proxy returned by `structlog.get_logger()`
|
||||
now returns its initial values when asked for context.
|
||||
* When asked for context before binding for the first time, it
|
||||
returned an empty dictionary in 23.3.0.
|
||||
* The displayed level name when using
|
||||
`structlog.stdlib.BoundLogger.exception()` is `"error"`
|
||||
instead of `"exception"`.
|
||||
* Don't ignore the `width` argument of
|
||||
`RichTracebackFormatter`.
|
||||
* Implementing the output on top of the new columns API has
|
||||
changed the default very slightly, but shouldn't be
|
||||
noticeable.
|
||||
* Async log methods (those starting with an `a`) now also
|
||||
support the collection of callsite information using
|
||||
`structlog.processors.CallsiteParameterAdder`.
|
||||
* `structlog.stdlib.recreate_defaults()` now also adds
|
||||
`structlog.stdlib.add_logger_name` to the processors.
|
||||
* The return value from `get_logger()` (a
|
||||
`BoundLoggerLazyProxy`) now passes `isinstance`-checks
|
||||
against `structlog.typing.BindableLogger` on Python 3.12.
|
||||
* `structlog.threadlocal.tmp_bind()` now also works with
|
||||
`BoundLoggerLazyProxy` (in other words: before anything is
|
||||
bound to a bound logger).
|
||||
* stdlib: `ProcessorFormatter` can now be told to not render
|
||||
the log record message using `getMessage` and just
|
||||
`str(record.msg)` instead.
|
||||
* stdlib: `structlog.stdlib.BoundLogger.exception()`'s handling
|
||||
of`LogRecord.exc_info` is now set consistent with `logging`.
|
||||
* Official support for Python 3.12.
|
||||
* `structlog.processors.MaybeTimeStamper` that only adds a
|
||||
timestamp if there isn't one already.
|
||||
* `structlog.dev.ConsoleRenderer` now supports renamed
|
||||
timestamp keys using the *timestamp_key* parameter.
|
||||
* `structlog.dev.RichTracebackFormatter` that allows to
|
||||
configure the traceback formatting.
|
||||
* `FilteringBoundLogger.exception()` and
|
||||
`FilteringBoundLogger.aexception()` now support positional
|
||||
argument formatting like the rest of the methods.
|
||||
* `structlog.processors.format_exc_info()` and
|
||||
`structlog.dev.ConsoleRenderer` do not crash anymore when
|
||||
told to format a non-existent exception.
|
||||
* `structlog.stdlib.BoundLogger` now has, analogously to our
|
||||
native logger, a full set of async log methods prefixed with
|
||||
an `a`: `await log.ainfo("event!")`
|
||||
* The default configuration now respects the presence of
|
||||
`FORCE_COLOR` (regardless of its value, unless an empty
|
||||
string).
|
||||
* This disables all heuristics whether it makes sense to use
|
||||
colors.
|
||||
* The default configuration now respects the presence of
|
||||
`NO_COLOR` (regardless of its value, unless an empty string).
|
||||
* This disables all heuristics whether it makes sense to use
|
||||
colors and overrides `FORCE_COLOR`.
|
||||
* Accessing package metadata as attributes on the *structlog*
|
||||
module is deprecated (for example, `structlog.__version__`).
|
||||
* Please use `importlib.metadata` instead (for Python 3.7: the
|
||||
*importlib-metadata* PyPI package).
|
||||
* The `structlog.types` module is now deprecated in favor of
|
||||
the `structlog.typing` module.
|
||||
* It seems like the Python typing community is settling on this
|
||||
name.
|
||||
* The timestamps in the default configuration now use the
|
||||
correct separator (`:`) for seconds.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 11 13:14:31 UTC 2022 - pgajdos@suse.com
|
||||
|
||||
- silent rpmlint
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 11 12:02:17 UTC 2022 - pgajdos@suse.com
|
||||
|
||||
- python-six is not required
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 21 07:12:29 UTC 2022 - Michael Vetter <mvetter@suse.com>
|
||||
|
||||
- Update to 22.1.0:
|
||||
Removed:
|
||||
* Python 3.6 is not supported anymore.
|
||||
* Pickling is now only possible with protocol version 3 and newer.
|
||||
Deprecated:
|
||||
* The entire structlog.threadlocal module is deprecated. Please use the
|
||||
primitives from structlog.contextvars instead.
|
||||
* If you're using the modern APIs (bind_threadlocal() / merge_threadlocal())
|
||||
it's enough to replace them 1:1 with their contextvars counterparts. The old
|
||||
approach around wrap_dict() has been discouraged for a while.
|
||||
* Currently there are no concrete plans to remove the module, but no patches
|
||||
against it will be accepted from now on. #409
|
||||
Added:
|
||||
* structlog.processors.StackInfoRenderer now has an additional_ignores
|
||||
parameter that allows you to filter out your own logging layer. #396
|
||||
* Added structlog.WriteLogger, a faster – but more low-level – alternative to
|
||||
structlog.PrintLogger. It works the way PrintLogger used to work in previous
|
||||
versions. #403 #404
|
||||
* structlog.make_filtering_bound_logger()-returned loggers now also have a
|
||||
log() method to match the structlog.stdlib.BoundLogger signature closer. #413
|
||||
* Added structured logging of tracebacks via the structlog.tracebacks module,
|
||||
and most notably the structlog.tracebacks.ExceptionDictTransformer which can be
|
||||
used with the new structlog.processors.ExceptionRenderer to render JSON
|
||||
tracebacks. #407
|
||||
* structlog.stdlib.recreate_defaults(log_level=logging.NOTSET) that recreates
|
||||
structlog's defaults on top of standard library's logging. It optionally also
|
||||
configures logging to log to standard out at the passed log level. #428
|
||||
* structlog.processors.EventRenamer allows you to rename the hitherto
|
||||
hard-coded event dict key event to something else. Optionally, you can rename
|
||||
another key to event at the same time, too. So adding EventRenamer(to="msg",
|
||||
replace_by="_event") to your processor pipeline will rename the standard event
|
||||
key to msg and then rename the _event key to event. This allows you to use the
|
||||
event key in your own log files and to have consistent log message keys across
|
||||
languages.
|
||||
* structlog.dev.ConsoleRenderer(event_key="event") now allows to customize
|
||||
the name of the key that is used for the log message.
|
||||
Changed:
|
||||
* structlog.make_filtering_bound_logger() now returns a method with the same
|
||||
signature for all log levels, whether they are active or not. This ensures that
|
||||
invalid calls to inactive log levels are caught immediately and don't explode
|
||||
once the log level changes. #401
|
||||
* structlog.PrintLogger – that is used by default – now uses print() for
|
||||
printing, making it a better citizen for interactive terminal applications. #399
|
||||
* structlog.testing.capture_logs now works for already initialized bound loggers. #408
|
||||
* structlog.processors.format_exc_info() is no longer a function, but an
|
||||
instance of structlog.processors.ExceptionRenderer. Its behavior has not
|
||||
changed. #407
|
||||
* The default configuration now includes the
|
||||
structlog.contextvars.merge_contextvars processor. That means you can use
|
||||
structlog.contextvars features without configuring structlog.
|
||||
Fixed:
|
||||
* Overloaded the bind, unbind, try_unbind and new methods in the
|
||||
FilteringBoundLogger Protocol. This makes it easier to use objects of type
|
||||
FilteringBoundLogger in a typed context. #392
|
||||
* Monkeypatched sys.stdouts are now handled more gracefully by
|
||||
ConsoleRenderer (that's used by default). #404
|
||||
* structlog.stdlib.render_to_log_kwargs() now correctly handles the presence
|
||||
of exc_info, stack_info, and stackLevel in the event dictionary. They are
|
||||
transformed into proper keyword arguments instead of putting them into the
|
||||
extra dictionary. #424, #427
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 1 10:55:24 UTC 2022 - Michael Vetter <mvetter@suse.com>
|
||||
|
||||
- Update to 21.5.0:
|
||||
* Added the structlog.processors.LogfmtRenderer processor to render
|
||||
log lines using the logfmt format. #376
|
||||
* Added the structlog.stdlib.ExtraAdder processor that adds extra
|
||||
attributes of logging.LogRecord objects to the event dictionary.
|
||||
This processor can be used for adding data passed in the extra
|
||||
parameter of the logging module's log methods to the event
|
||||
dictionary. #209 #377
|
||||
* Added the structlog.processor.CallsiteParameterAdder processor that
|
||||
adds parameters of the callsite that an event dictionary orginated
|
||||
from to the event dictionary. This processor can be used to enrich
|
||||
events dictionaries with information such as the function name,
|
||||
line number and filename that an event dictionary orignated from. #380
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 1 10:50:45 UTC 2022 - Michael Vetter <mvetter@suse.com>
|
||||
|
||||
- Update to 21.4.0:
|
||||
* Fixed import when running in optimized mode (PYTHONOPTIMIZE=2
|
||||
or python -OO). #373
|
||||
* Added the structlog.threadlocal.bound_threadlocal and
|
||||
structlog.contextvars.bound_contextvars decorator/context managers
|
||||
to temporarily bind key/value pairs to a thread-local and context-local
|
||||
context. #371
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 1 10:49:07 UTC 2022 - Michael Vetter <mvetter@suse.com>
|
||||
|
||||
- Update to 21.3.0:
|
||||
* structlog.dev.ConsoleRenderer now has sort_keys boolean parameter
|
||||
that allows to disable the sorting of keys on output. #358
|
||||
* structlog.processors.TimeStamper now works well with FreezeGun
|
||||
even when it gets applied before the loggers are configured. #364
|
||||
* structlog.stdlib.AsyncBoundLogger now determines the running loop
|
||||
when logging, not on instantiation. That has a minor performance
|
||||
impact, but makes it more robust when loops change
|
||||
(e.g. aiohttp.web.run_app()), or you want to use sync_bl before a
|
||||
loop has started.
|
||||
* structlog.stdlib.ProcessorFormatter now has a processors argument
|
||||
that allows to define a processor chain to run over all log entries.
|
||||
* Before running the chain, two additional keys are added to the event
|
||||
dictionary: _record and _from_structlog. With them it's possible to
|
||||
extract information from logging.LogRecords and differentiate between
|
||||
structlog and logging log entries while processing them.
|
||||
* The old processor (singular) parameter is now deprecated, but no
|
||||
plans exist to remove it. #365
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 13 08:36:18 UTC 2021 - Michael Vetter <mvetter@suse.com>
|
||||
|
||||
- Update to 21.2.0:
|
||||
Highlights:
|
||||
* Support for for beautiful (and helpful!) exceptions by integrating
|
||||
ConsoleRenderer with rich or better-exceptions.
|
||||
* Helpers to access thread-local and context-local context.
|
||||
* Deeper contextvars support.
|
||||
Backward-incompatible changes:
|
||||
* To implement pretty exceptions (see Changes below),
|
||||
structlog.dev.ConsoleRenderer now formats exceptions itself.
|
||||
Make sure to remove format_exc_info from your processor chain if you
|
||||
configure structlog manually. This change is not really breaking
|
||||
because the old use-case will keep working as before. However if
|
||||
you pass pretty_exceptions=True (which is the default if either
|
||||
rich or better-exceptions is installed), a warning will be raised
|
||||
and the exception will be renderered without prettyfication.
|
||||
Changes:
|
||||
* structlog is now importable if sys.stdout is None (e.g. when
|
||||
running using pythonw). #313
|
||||
* structlog.threadlocal.get_threadlocal() and
|
||||
structlog.contextvars.get_contextvars() can now be used to get a copy
|
||||
of the current thread-local/context-local context that has been bound
|
||||
using structlog.threadlocal.bind_threadlocal() and
|
||||
structlog.contextvars.bind_contextvars(). #331 #337
|
||||
* structlog.threadlocal.get_merged_threadlocal(bl) and
|
||||
structlog.contextvars.get_merged_contextvars(bl) do the same, but
|
||||
also merge the context from a bound logger bl. Same pull requests as
|
||||
previous change.
|
||||
* structlog.contextvars.bind_contextvars() now returns a mapping of
|
||||
keys to contextvars.Tokens, allowing you to reset values using the
|
||||
new structlog.contextvars.reset_contextvars(). #339
|
||||
* Exception rendering in structlog.dev.ConsoleLogger is now configurable
|
||||
using the exception_formatter setting. If either the rich or the
|
||||
better-exceptions package is present, structlog will use them for
|
||||
pretty-printing tracebacks. rich takes precedence over
|
||||
better-exceptions if both are present.
|
||||
This only works if format_exc_info is absent in the processor chain.
|
||||
#330 #349
|
||||
* All use of colorama on non-Windows systems has been excised. Thus,
|
||||
colors are now enabled by default in structlog.dev.ConsoleRenderer
|
||||
on non-Windows systems. You can keep using colorama to customize
|
||||
colors, of course. #345
|
||||
* The final processor can now return a bytearray (additionally to str
|
||||
and bytes). #344
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 19 08:07:55 UTC 2021 - Michael Vetter <mvetter@suse.com>
|
||||
|
||||
- Update to 21.1.0:
|
||||
* structlog.threadlocal.wrap_dict() now has a correct type
|
||||
annotation. #290
|
||||
* Fix isolation in structlog.contextvars. #302
|
||||
* The default configuration and loggers are pickleable again. #301
|
||||
* structlog.dev.ConsoleRenderer will now look for a logger_name
|
||||
key if no logger key is set. #295
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 4 11:16:18 UTC 2021 - Michael Vetter <mvetter@suse.com>
|
||||
|
||||
- Update to 20.2.0:
|
||||
Backward-incompatible changes:
|
||||
* Python 2.7 and 3.5 aren't supported anymore. The package meta
|
||||
data should ensure that you keep getting 20.1.0 on those versions. #244
|
||||
* structlog is now fully type-annotated. This won't break your
|
||||
applications, but if you use Mypy, it will most likely break your CI.
|
||||
Deprecations:
|
||||
* Accessing the _context attribute of a bound logger is now deprecated.
|
||||
Please use the new structlog.get_context().
|
||||
Changes:
|
||||
* structlog has now type hints for all of its APIs! Since structlog
|
||||
is highly dynamic and configurable, this led to a few concessions
|
||||
like a specialized structlog.stdlib.get_logger() whose only difference
|
||||
to structlog.get_logger() is that it has the correct type hints.
|
||||
We consider them provisional for the time being – i.e. the backward
|
||||
compatibility does not apply to them in its full strength until we
|
||||
feel we got it right. Please feel free to provide feedback! #223, #282
|
||||
* Added structlog.make_filtering_logger that can be used like
|
||||
configure(wrapper_class=make_filtering_bound_logger(logging.INFO)).
|
||||
It creates a highly optimized bound logger whose inactive methods
|
||||
only consist of a return None. This is now also the default logger.
|
||||
* As a complement, structlog.stdlib.add_log_level() can now
|
||||
additionally be imported as structlog.processors.add_log_level
|
||||
since it just adds the method name to the event dict.
|
||||
* structlog.processors.add_log_level() is now part of the default configuration.
|
||||
* structlog.stdlib.ProcessorFormatter no longer uses exceptions for
|
||||
control flow, allowing foreign_pre_chain processors to use
|
||||
sys.exc_info() to access the real exception.
|
||||
* Added structlog.BytesLogger to avoid unnecessary encoding round trips.
|
||||
Concretely this is useful with orjson which returns bytes. #271
|
||||
* The final processor now also may return bytes that are passed
|
||||
untouched to the wrapped logger.
|
||||
* structlog.get_context() allows you to retrieve the original
|
||||
context of a bound logger. #266,
|
||||
* structlog.PrintLogger now supports copy.deepcopy(). #268
|
||||
* Added structlog.testing.CapturingLogger for more unit testing goodness.
|
||||
* Added structlog.stdlib.AsyncBoundLogger that executes logging
|
||||
calls in a thread executor and therefore doesn't block. #245
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 17 11:33:05 UTC 2020 - pgajdos@suse.com
|
||||
|
||||
- version update to 20.1.0
|
||||
- This is the last version to support Python 2.7 (including PyPy) and 3.5.
|
||||
All following versions will only support Python 3.6 or later.
|
||||
- Added a new module ``structlog.contextvars`` that allows to have a global but context-local ``structlog`` context the same way as with ``structlog.threadlocal`` since 19.2.0.
|
||||
`#201 <https://github.com/hynek/structlog/issues/201>`_,
|
||||
`#236 <https://github.com/hynek/structlog/pull/236>`_
|
||||
- Added a new module ``structlog.testing`` for first class testing support.
|
||||
The first entry is the context manager ``capture_logs()`` that allows to make assertions about structured log calls.
|
||||
`#14 <https://github.com/hynek/structlog/issues/14>`_,
|
||||
`#234 <https://github.com/hynek/structlog/pull/234>`_
|
||||
- Added ``structlog.threadlocal.unbind_threadlocal()``.
|
||||
`#239 <https://github.com/hynek/structlog/pull/239>`_
|
||||
- The logger created by ``structlog.get_logger()`` is not detected as an abstract method anymore, when attached to an abstract base class.
|
||||
`#229 <https://github.com/hynek/structlog/issues/229>`_
|
||||
- ``colorama`` isn't initialized lazily on Windows anymore because it breaks rendering.
|
||||
`#232 <https://github.com/hynek/structlog/issues/232>`_,
|
||||
`#242 <https://github.com/hynek/structlog/pull/242>`_
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 17 06:35:14 UTC 2019 - Michael Vetter <mvetter@suse.com>
|
||||
|
||||
- Update to 19.2.0:
|
||||
Backward-incompatible changes:
|
||||
* Python 3.4 is not supported anymore. It has been unsupported by
|
||||
the Python core team for a while now and its PyPI downloads are negligible.
|
||||
It's very unlikely that structlog will break under 3.4 anytime soon,
|
||||
but we don't test it anymore.
|
||||
Changes:
|
||||
* Full Python 3.8 support for structlog.stdlib.
|
||||
* Added more pass-through properties to structlog.stdlib.BoundLogger.
|
||||
To makes it easier to use it as a drop-in replacement for logging.Logger. #198
|
||||
* structlog.stdlib.ProcessorFormatter now takes a logger object as an
|
||||
optional keyword argument. This makes ProcessorFormatter work properly
|
||||
with stuctlog.stdlib.filter_by_level(). #219
|
||||
* structlog.dev.ConsoleRenderer now uses no colors by default, if
|
||||
colorama is not available. #215
|
||||
* structlog.dev.ConsoleRenderer now initializes colorama lazily, to
|
||||
prevent accidental side-effects just by importing structlog. #210
|
||||
* Added new processor structlog.dev.set_exc_info() that will set
|
||||
exc_info=True if the method's name is exception and exc_info isn't
|
||||
set at all. This is only necessary when the standard library integration
|
||||
is not used. It fixes the problem that in the default configuration,
|
||||
structlog.get_logger().exception("hi") in an except block would not print the
|
||||
exception without passing exc_info=True to it explicitly. #130, #173, #200, #204
|
||||
* A best effort has been made to make as much of structlog pickleable as possible
|
||||
to make it friendlier with multiprocessing and similar libraries.
|
||||
Some classes can only be pickled on Python 3 or using the dill library
|
||||
though and that is very unlikely to change.
|
||||
* So far, the configuration proxy, structlog.processor.TimeStamper,
|
||||
structlog.BoundLogger, structlog.PrintLogger and structlog.dev.ConsoleRenderer
|
||||
have been made pickelable. Please report if you need any another class fixed. #126
|
||||
* Added a new thread-local API that allows binding values to a thread-local
|
||||
context explicitly without affecting the default behavior of bind(). #222, #225
|
||||
* Added pass_foreign_args argument to structlog.stdlib.ProcessorFormatter.
|
||||
It allows to pass a foreign log record's args attribute to the event
|
||||
dictionary under the positional_args key. #228
|
||||
* structlog.dev.ConsoleRenderer now calls str() on the event value. #221
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 2 11:12:35 UTC 2019 - mvetter@suse.com
|
||||
|
||||
- Update to 19.1.0:
|
||||
* structlog.ReturnLogger and structlog.PrintLogger now have
|
||||
a fatal() log method. #181
|
||||
* Under certain (rather unclear) circumstances, the frame
|
||||
extraction could throw an SystemError: error return without
|
||||
exception set. A workaround has been added. #174
|
||||
* structlog now tolerates passing through dicts to stdlib
|
||||
logging. #187 #188 #189
|
||||
- Use pytest macro
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 29 08:06:43 UTC 2018 - ecsos@opensuse.org
|
||||
|
||||
- Fix source address and add missing source.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 22 13:28:52 UTC 2018 - Karol Babioch <kbabioch@suse.de>
|
||||
|
||||
- Version update to 18.2.0
|
||||
* Added structlog.stdlib.add_log_level_number() processor that adds the level
|
||||
number to the event dictionary. Can be used to simplify log filtering.
|
||||
* structlog.processors.JSONRenderer now allows for overwriting the default
|
||||
argument of its serializer.
|
||||
* Added try_unbind() that works like unbind() but doesn't raise a KeyError if
|
||||
one of the keys is missing. #171
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 31 12:37:20 UTC 2018 - kbabioch@suse.com
|
||||
|
||||
- Initial packaging of version 18.1.0
|
||||
Reference in New Issue
Block a user