structlog v19.2.0 Release Notes
Release Date: 2019-10-16 // over 4 years ago-
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.๐ Deprecations: ^
none
๐ 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 forlogging.Logger
.#198 <https://github.com/hynek/structlog/issues/198>
_ structlog.stdlib.ProcessorFormatter
now takes a logger object as an optional keyword argument. This makesProcessorFormatter
work properly withstuctlog.stdlib.filter_by_level()
.#219 <https://github.com/hynek/structlog/issues/219>
_- 0๏ธโฃ
structlog.dev.ConsoleRenderer
now uses no colors by default, ifcolorama
is not available.#215 <https://github.com/hynek/structlog/issues/215>
_ structlog.dev.ConsoleRenderer
now initializescolorama
lazily, to prevent accidental side-effects just by importingstructlog
.#210 <https://github.com/hynek/structlog/issues/210>
_- Added new processor
structlog.dev.set_exc_info()
that will setexc_info=True
if the method's name isexception
andexc_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 anexcept
block would not print the exception without passingexc_info=True
to it explicitly.#130 <https://github.com/hynek/structlog/issues/130>
,#173 <https://github.com/hynek/structlog/issues/173>
,#200 <https://github.com/hynek/structlog/issues/200>
,#204 <https://github.com/hynek/structlog/issues/204>
- A best effort has been made to make as much of
structlog
pickleable as possible to make it friendlier withmultiprocessing
and similar libraries. Some classes can only be pickled on Python 3 or using thedill <https://pypi.org/project/dill/>
_ library though and that is very unlikely to change.
So far, the configuration proxy,
structlog.processor.TimeStamper
,structlog.BoundLogger
,structlog.PrintLogger
andstructlog.dev.ConsoleRenderer
have been made pickelable. Please report if you need any another class fixed.#126 <https://github.com/hynek/structlog/issues/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 <https://github.com/hynek/structlog/issues/222>
,#225 <https://github.com/hynek/structlog/issues/225>
- Added
pass_foreign_args
argument tostructlog.stdlib.ProcessorFormatter
. It allows to pass a foreign log record'sargs
attribute to the event dictionary under thepositional_args
key.#228 <https://github.com/hynek/structlog/issues/228>
_ structlog.dev.ConsoleRenderer
now callsstr()
on the event value.#221 <https://github.com/hynek/structlog/issues/221>
_