./sysutils/py-structlog, Painless structural logging

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 21.5.0nb1, Package name: py39-structlog-21.5.0nb1, Maintainer: pkgsrc-users

structlog makes structured logging in Python easy by augmenting your existing
logger. It allows you to split your log entries up into key/value pairs and
build them incrementally without annoying boilerplate code.


Required to run:
[devel/py-setuptools] [lang/py-six] [lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 462.001 KB

Version history: (Expand)


CVS history: (Expand)


   2022-04-30 13:11:01 by Thomas Klausner | Files touched by this commit (2)
Log message:
py-structlog: fix build by using wheel.mk

Add a missing test dependency, add test status
   2022-01-07 18:04:31 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-structlog: updated to 21.5.0

21.5.0 (2021-12-16)
-------------------
Changes:
- Added the ``structlog.processors.LogfmtRenderer`` processor to render log \ 
lines using the `logfmt <https://brandur.org/logfmt>`_ format.
- 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.
- 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.

21.4.0 (2021-11-25)
-------------------
Changes:
- Fixed import when running in optimized mode (``PYTHONOPTIMIZE=2`` or ``python \ 
-OO``).
- 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.

21.3.0 (2021-11-20)
-------------------
Backward-incompatible changes:
- ``structlog`` switched its packaging to `flit \ 
<https://flit.readthedocs.io/>`_.
  Users shouldn't notice a difference, but (re-)packagers might.

Changes:
- ``structlog.dev.ConsoleRenderer`` now has ``sort_keys`` boolean parameter that \ 
allows to disable the sorting of keys on output.
- ``structlog.processors.TimeStamper`` now works well with FreezeGun even when \ 
it gets applied before the loggers are configured.
- ``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.LogRecord``\s \ 
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.
   2022-01-04 21:55:40 by Thomas Klausner | Files touched by this commit (1595)
Log message:
*: bump PKGREVISION for egg.mk users

They now have a tool dependency on py-setuptools instead of a DEPENDS
   2021-10-26 19:29:40 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-structlog: updated to 21.2.0

21.2.0 (2021-10-12)
-------------------

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``).
- ``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()``.
- ``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.Token``\s, allowing you to reset values using the new \ 
``structlog.contextvars.reset_contextvars()``.
- Exception rendering in ``structlog.dev.ConsoleLogger`` is now configurable \ 
using the ``exception_formatter`` setting.
  If either the `rich <https://github.com/willmcgugan/rich>`_ or the \ 
`better-exceptions <https://github.com/qix-/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.
- 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.
- The final processor can now return a ``bytearray`` (additionally to ``str`` \ 
and ``bytes``).
   2021-10-26 13:20:30 by Nia Alarie | Files touched by this commit (630)
Log message:
sysutils: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes
   2021-10-07 16:58:44 by Nia Alarie | Files touched by this commit (630)
Log message:
sysutils: Remove SHA1 hashes for distfiles
   2021-05-14 10:22:34 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-structlog: updated to 21.1.0

21.1.0 (2021-02-18)
Changes:
- ``structlog.threadlocal.wrap_dict()`` now has a correct type annotation.
- Fix isolation in ``structlog.contextvars``.
- The default configuration and loggers are pickleable again.
- ``structlog.dev.ConsoleRenderer`` will now look for a ``logger_name`` key if no
  ``logger`` key is set.
   2021-02-07 16:42:49 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-structlog: updated to 20.2.0

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.

- ``structlog`` is now fully type-annotated.
  This won't break your applications, but if you use Mypy, it will most likely \ 
break your CI.

  Check out the new chapter on typing for details.

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!
- 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.
- 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.
- ``structlog.PrintLogger`` now supports ``copy.deepcopy()``.
- 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.