Changelog¶
15.3.0 2015-09-25
- [Feature]: Add
structlog.ReturnLogger.failure()
andstructlog.PrintLogger.failure()
as preparation for the new Twisted logging system. - [Feature]: Officially support Python 3.5.
- [Bug]: Tolerate frames without a
__name__
, better.
15.2.0 2015-06-10
- [Feature] #51: Add option to specify target key in
structlog.processors.TimeStamper
processor. - [Feature] #52: Better support of
logging.Logger.exception()
withinstructlog
. - [Bug]: Prevent Twisted’s
log.err
from quoting strings rendered bystructlog.twisted.JSONRenderer
. - [Bug]: Allow empty lists of processors. This is a valid use case since #26 has been merged. Before, supplying an empty list resulted in the defaults being used.
15.1.0 2015-02-24
- [Bug]: Tolerate frames without a
__name__
.
15.0.0 2015-01-23
- [Feature] #26: Allow final processor to return a dictionary. See Adapting and Rendering.
- [Feature]: Officially support Python 3.4.
- [Feature]: Drop support for Python 3.2. There is no justification to add complexity for a Python version that nobody uses. If you are one of the 0.350% that use Python 3.2, please stick to the 0.4 branch; critical bugs will still be fixed.
- [Feature]: Test Twisted-related code on Python 3 (with some caveats).
- [Feature]:
structlog.PrintLogger
now is thread-safe. - [Feature] #22: Add
structlog.stdlib.BoundLogger.exception()
. - [Feature] #28: structlog is now dually licensed under the Apache License, Version 2 and the MIT license. Therefore it is now legal to use structlog with GPLv2-licensed projects.
- [Feature] #19: Pass positional arguments to stdlib wrapped loggers that use string formatting.
- [Feature] #42: Add
structlog.stdlib.BoundLogger.log()
. - [Feature] #44: Add
structlog.stdlib.add_log_level()
andstructlog.stdlib.add_logger_name()
processors.
0.4.2 2014-07-26
- [Bug]:
from structlog import *
works now (but you still shouldn’t use it). - [Bug] #8: Fixed a memory leak in greenlet code that emulates thread locals. It shouldn’t matter in practice unless you use multiple wrapped dicts within one program that is rather unlikely.
0.4.1 2013-12-19
- [Bug]: Various doc fixes.
- [Bug]: Don’t cache proxied methods in
structlog.threadlocal._ThreadLocalDictWrapper
. This doesn’t affect regular users.
0.4.0 2013-11-10
- [Feature] #5: Add meta data (e.g. function names, line numbers) extraction for wrapped stdlib loggers.
- [Feature]: Allow the standard library name guesser to ignore certain frame names. This is useful together with frameworks.
- [Feature]: Add
structlog.processors.ExceptionPrettyPrinter
for development and testing when multiline log entries aren’t just acceptable but even helpful. - [Feature] #12: Allow optional positional arguments for
structlog.get_logger()
that are passed to logger factories. The standard library factory uses this for explicit logger naming. - [Feature] #6: Add
structlog.processors.StackInfoRenderer
for adding stack information to log entries without involving exceptions. Also added it to default processor chain.
0.3.2 2013-09-27
- [Bug]: Fix stdlib’s name guessing.
0.3.1 2013-09-26
- [Bug]: Add forgotten
structlog.processors.TimeStamper
to API documentation.
0.3.0 2013-09-23
- [Feature]: Extract a common base class for loggers that does nothing except keeping the context state.
This makes writing custom loggers much easier and more straight-forward.
See
structlog.BoundLoggerBase
. - [Feature]: Allow logger proxies that are returned by
structlog.get_logger()
andstructlog.wrap_logger()
to cache the BoundLogger they assemble according to configuration on first use. See Performance and the cache_logger_on_first_use ofstructlog.configure()
andstructlog.wrap_logger()
. - [Feature]: Add Twisted-specific BoundLogger that has an explicit API instead of intercepting unknown method calls.
See
structlog.twisted.BoundLogger
. - [Feature]:
structlog.ReturnLogger
now allows arbitrary positional and keyword arguments. - [Feature]: Add Python Standard Library-specific BoundLogger that has an explicit API instead of intercepting unknown method calls.
See
structlog.stdlib.BoundLogger
. - [Support]: Greatly enhanced and polished the documentation and added a new theme based on Write The Docs, requests, and Flask. See License and Hall of Fame.
0.2.0 2013-09-17
- [Feature]: Allow for custom serialization in
structlog.twisted.JSONRenderer
without abusing__repr__
. - [Feature]: Enhance Twisted support by offering JSONification of non-structlog log entries.
- [Feature]:
structlog.PrintLogger
now uses proper I/O routines and is thus viable not only for examples but also for production. - [Feature]: Add key_order option to
structlog.processors.KeyValueRenderer
for more predictable log entries with any dict class. - [Feature]: Promote to stable, thus henceforth a strict backward compatibility policy is put into effect. See How To Contribute.
0.1.0 2013-09-16
- [Feature]: Initial work.