Skip to main content

Structured Logging for Python

Project description

structlog mascot

structlog is the production-ready logging solution for Python:

  • Simple: At its core, everything is about functions that take and return dictionaries – all hidden behind familiar APIs.
  • Powerful: Functions and dictionaries aren’t just simple, they’re also powerful. structlog leaves you in control.
  • Fast: structlog is not hamstrung by designs of yore. Its flexibility comes not at the price of performance.

Thanks to its flexible design, you choose whether you want structlog to take care of the output of your log entries or whether you prefer to forward them to an existing logging system like the standard library's logging module.

The output format is just as flexible and structlog comes with support for JSON, logfmt, as well as pretty console output out-of-the-box:

image

Sponsors

structlog would not be possible without our amazing sponsors. Especially those generously supporting us at the The Organization tier and higher:

Please consider joining them to help make structlog’s maintenance more sustainable!


structlog has been successfully used in production at every scale since 2013, while embracing cutting-edge technologies like asyncio, context variables, or type hints as they emerged. Its paradigms proved influential enough to help design structured logging packages across ecosystems.

Project Information

structlog for Enterprise

Available as part of the Tidelift Subscription.

The maintainers of structlog and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use. Learn more.

Release Information

Added

  • 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!") #502

  • 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. #503

  • 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. #504

Fixed

  • ConsoleRenderer now reuses the _figure_out_exc_info to process the exc_info argument like ExceptionRenderer does. This prevents crashes if the actual Exception is passed for the exc_info argument instead of a tuple or True. #482

  • FilteringBoundLogger.aexception() now extracts the exception info using sys.exc_info() before passing control to the asyncio executor (where original exception info is no longer available). #488


Full changelog

Credits

structlog is written and maintained by Hynek Schlawack. The idea of bound loggers is inspired by previous work by Jean-Paul Calderone and David Reid.

The development is kindly supported by my employer Variomedia AG, structlog’s Tidelift subscribers, and all my amazing GitHub Sponsors.

A full list of contributors can be found in GitHub’s overview.

The logs-loving futuristic beaver logo has been contributed by Russell Keith-Magee.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

structlog-23.1.0.tar.gz (746.3 kB view details)

Uploaded Source

Built Distribution

structlog-23.1.0-py3-none-any.whl (62.4 kB view details)

Uploaded Python 3

File details

Details for the file structlog-23.1.0.tar.gz.

File metadata

  • Download URL: structlog-23.1.0.tar.gz
  • Upload date:
  • Size: 746.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for structlog-23.1.0.tar.gz
Algorithm Hash digest
SHA256 270d681dd7d163c11ba500bc914b2472d2b50a8ef00faa999ded5ff83a2f906b
MD5 bd2218c8799e44a90689bbdeadcab4f3
BLAKE2b-256 9ec4688d14600f3a8afa31816ac95220f2548648e292c3ff2262057aa51ac2fb

See more details on using hashes here.

File details

Details for the file structlog-23.1.0-py3-none-any.whl.

File metadata

  • Download URL: structlog-23.1.0-py3-none-any.whl
  • Upload date:
  • Size: 62.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for structlog-23.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 79b9e68e48b54e373441e130fa447944e6f87a05b35de23138e475c05d0f7e0e
MD5 004950174465bda30d81fa262af2c253
BLAKE2b-256 0cb20c0951c78f3f59ce44e93cb9b2140d305a00bb8262532041c702d4d4300a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page