All Versions
28
Latest Version
Avg Release Cycle
140 days
Latest Release
638 days ago

Changelog History
Page 2

  • v18.2.0 Changes

    September 05, 2018

    Backward-incompatible changes:

    none

    ๐Ÿ—„ Deprecations: ^

    none

    ๐Ÿ”„ Changes: ^

    • ๐ŸŒฒ Added structlog.stdlib.add_log_level_number() processor that adds the level number to the event dictionary. Can be used to simplify log filtering. #151 <https://github.com/hynek/structlog/pull/151>_
    • 0๏ธโƒฃ structlog.processors.JSONRenderer now allows for overwriting the default argument of its serializer. #77 <https://github.com/hynek/structlog/pull/77>, #163 <https://github.com/hynek/structlog/pull/163>
    • โž• Added try_unbind() that works like unbind() but doesn't raise a KeyError if one of the keys is missing. #171 <https://github.com/hynek/structlog/pull/171>_

  • v18.1.0 Changes

    January 27, 2018

    Backward-incompatible changes:

    none

    ๐Ÿ—„ Deprecations: ^

    • The meaning of the structlog[dev] installation target will change from "colorful output" to "dependencies to develop structlog" in 19.1.0.

    The main reason behind this decision is that it's impossible to have a structlog in your normal dependencies and additionally a structlog[dev] for development (pip will report an error).

    ๐Ÿ”„ Changes: ^

    • Empty strings are valid events now. #110 <https://github.com/hynek/structlog/issues/110>_
    • Do not encapsulate Twisted failures twice with newer versions of Twisted. #144 <https://github.com/hynek/structlog/issues/144>_
    • ๐Ÿ‘ฎ structlog.dev.ConsoleRenderer now accepts a force_colors argument to output colored logs even if the destination is not a tty. Use this option if your logs are stored in files that are intended to be streamed to the console.
    • structlog.dev.ConsoleRenderer now accepts a level_styles argument for overriding the colors for individual levels, as well as to add new levels. See the docs for ConsoleRenderer.get_default_level_styles() for usage. #139 <https://github.com/hynek/structlog/pull/139>_
    • ๐Ÿ‘ป structlog.stdlib.BoundLogger.exception() now uses the exc_info argument if it has been passed instead of setting it unconditionally to True. #149 <https://github.com/hynek/structlog/pull/149>_
    • ๐Ÿ”ง Default configuration now uses plain dict\ s on Python 3.6+ and PyPy since they are ordered by default.
    • โž• Added structlog.is_configured() to check whether or not structlog has been configured.
    • โž• Added structlog.get_config() to introspect current configuration.

  • v17.2.0 Changes

    May 15, 2017

    Backward-incompatible changes:

    none

    ๐Ÿ—„ Deprecations: ^

    none

    ๐Ÿ”„ Changes: ^

    • structlog.stdlib.ProcessorFormatter now accepts keep_exc_info and keep_stack_info arguments to control what to do with this information on log records. Most likely you want them both to be False therefore it's the default. #109 <https://github.com/hynek/structlog/issues/109>_
    • structlog.stdlib.add_logger_name() now works in structlog.stdlib.ProcessorFormatter's foreign_pre_chain. #112 <https://github.com/hynek/structlog/issues/112>_
    • ๐ŸŒฒ Clear log record args in structlog.stdlib.ProcessorFormatter after rendering. This fix is for you if you tried to use it and got TypeError: not all arguments converted during string formatting exceptions. #116 <https://github.com/hynek/structlog/issues/116>, #117 <https://github.com/hynek/structlog/issues/117>

  • v17.1.0 Changes

    April 24, 2017

    ๐Ÿš€ The main features of this release are massive improvements in standard library's logging integration. โšก๏ธ Have a look at the updated standard library chapter <https://www.structlog.org/en/stable/standard-library.html>_ on how to use them! Special thanks go to Fabian Bรผchler <https://github.com/fabianbuechler>, Gilbert Gilb's <https://github.com/gilbsgilbs>, Iva Kaneva <https://github.com/if-fi>, insolite <https://github.com/insolite>, and sky-code <https://github.com/sky-code>_, that made them possible.

    Backward-incompatible changes:

    • ๐Ÿ”ง The default renderer now is structlog.dev.ConsoleRenderer if you don't configure structlog. Colors are used if available and human-friendly timestamps are prepended. This is in line with our backward compatibility policy <https://www.structlog.org/en/stable/backward-compatibility.html>_ that explicitly excludes default settings.

    ๐Ÿ”„ Changes: ^

    • Added structlog.stdlib.render_to_log_kwargs(). This allows you to use logging-based formatters to take care of rendering your entries. #98 <https://github.com/hynek/structlog/issues/98>_
    • โž• Added structlog.stdlib.ProcessorFormatter which does the opposite: This allows you to run structlog processors on arbitrary logging.LogRecords. #79 <https://github.com/hynek/structlog/issues/79>, #105 <https://github.com/hynek/structlog/issues/105>
    • UNIX epoch timestamps from structlog.processors.TimeStamper are more precise now.
    • Added repr_native_str to structlog.processors.KeyValueRenderer and structlog.dev.ConsoleRenderer. This allows for human-readable non-ASCII output on Python 2 (repr() on Python 2 behaves like ascii() on Python 3 in that regard). As per compatibility policy, it's on (original behavior) in KeyValueRenderer and off (humand-friendly behavior) in ConsoleRenderer. #94 <https://github.com/hynek/structlog/issues/94>_
    • Added colors argument to structlog.dev.ConsoleRenderer and made it the default renderer. #78 <https://github.com/hynek/structlog/pull/78>_
    • ๐Ÿ›  Fixed bug with Python 3 and structlog.stdlib.BoundLogger.log(). Error log level was not reproductible and was logged as exception one time out of two. #92 <https://github.com/hynek/structlog/pull/92>_
    • ๐Ÿšš Positional arguments are now removed even if they are empty. #82 <https://github.com/hynek/structlog/pull/82>_

  • v16.1.0 Changes

    May 24, 2016

    Backward-incompatible changes:

    • ๐Ÿ‘ Python 3.3 and 2.6 aren't supported anymore. They may work by chance but any effort to keep them working has ceased.

    The last Python 2.6 release was on October 29, 2013 and isn't supported by the CPython core team anymore. Major Python packages like Django and Twisted dropped Python 2.6 a while ago already.

    Python 3.3 never had a significant user base and wasn't part of any distribution's LTS release.

    ๐Ÿ”„ Changes: ^

    • โž• Add a drop_missing argument to KeyValueRenderer. If key_order is used and a key is missing a value, it's not rendered at all instead of being rendered as None. #67 <https://github.com/hynek/structlog/pull/67>_
    • Exceptions without a __traceback__ are now also rendered on Python 3.
    • Don't cache loggers in lazy proxies returned from get_logger(). This lead to in-place mutation of them if used before configuration which in turn lead to the problem that configuration was applied only partially to them later. #72 <https://github.com/hynek/structlog/pull/72>_

  • v16.0.0 Changes

    January 28, 2016

    โž• Added

    • โž• Added structlog.dev.ConsoleRenderer that renders the event dictionary aligned and with colors.
    • โž• Added structlog.processors.UnicodeDecoder that will decode all byte string values in an event dictionary to Unicode.
    • โž• Added serializer parameter to structlog.processors.JSONRenderer which allows for using different (possibly faster) JSON encoders than the standard library.

    ๐Ÿ”„ Changed

    • structlog.processors.ExceptionPrettyPrinter and structlog.processors.format_exc_info now support passing of Exceptions on Python 3.
    • six is now used for compatibility.

    ๐Ÿ›  Fixed

    • The context is now cleaned up when exiting structlog.threadlocal.tmp_bind in case of exceptions. #64
    • Be more more lenient about missing __name__s. #62
  • v15.3.0 Changes

    September 25, 2015

    ๐Ÿ”„ Changes: ^

    • Tolerate frames without a __name__, better. #58 <https://github.com/hynek/structlog/pull/58>_
    • ๐Ÿ‘ Officially support Python 3.5.
    • โž• Add structlog.ReturnLogger.failure and structlog.PrintLogger.failure as preparation for the new Twisted logging system.

  • v15.2.0 Changes

    June 10, 2015

    ๐Ÿ”„ Changes: ^

    • ๐Ÿ‘ Allow empty lists of processors. This is a valid use case since #26 <https://github.com/hynek/structlog/issues/26>_ has been merged. Before, supplying an empty list resulted in the defaults being used.
    • ๐ŸŒฒ Prevent Twisted's log.err from quoting strings rendered by structlog.twisted.JSONRenderer.
    • ๐Ÿ‘ Better support of logging.Logger.exception within structlog. #52 <https://github.com/hynek/structlog/pull/52>_
    • โž• Add option to specify target key in structlog.processors.TimeStamper processor. #51 <https://github.com/hynek/structlog/pull/51>_

  • v15.1.0 Changes

    February 24, 2015

    ๐Ÿ›  Fixed

    • Tolerate frames without a __name__ when guessing callsite names.
  • v15.0.0 Changes

    January 23, 2015

    ๐Ÿ”„ Changes: ^

    • ๐ŸŒฒ Add structlog.stdlib.add_log_level and structlog.stdlib.add_logger_name processors. #44 <https://github.com/hynek/structlog/pull/44>_
    • โž• Add structlog.stdlib.BoundLogger.log. #42 <https://github.com/hynek/structlog/pull/42>_
    • Pass positional arguments to stdlib wrapped loggers that use string formatting. #19 <https://github.com/hynek/structlog/pull/19>_
    • structlog is now dually licensed under the Apache License, Version 2 <https://choosealicense.com/licenses/apache/>_ and the MIT <https://choosealicense.com/licenses/mit/>_ license. Therefore it is now legal to use structlog with GPLv2 <https://choosealicense.com/licenses/gpl-2.0/>-licensed projects. #28 <https://github.com/hynek/structlog/pull/28>
    • โž• Add structlog.stdlib.BoundLogger.exception. #22 <https://github.com/hynek/structlog/pull/22>_