Skip to main content

ContextVars Filter for easily enriching log records

Project description

contextfilter

Version License Tests

Small, helper library for logging contextual information using contextvars in Python 3.7.

Installation

Using pip

$ pip install contextfilter

Usage

import logging
from contextvars import ContextVar
from contextfilter import ContextVarFilter, ConstContextFilter

request_id: ContextVar[int] = ContextVar('request_id')
logger = logging.getLogger("test")
cf = ContextFilter(request_id=request_id)
request_id.set(3)
logger.addFilter(cf)
logger.info("test")
# Log record will contain the attribute request_id with value 3

cf = ConstContextFilter(some_const=1)
logger.addFilter(cf)
logger.info("test")
# Log record will contain the attribute some_const with value 1.

Contributing

To work on the contextfilter codebase, you'll want to fork the project and clone it locally and install the required dependencies via poetry:

$ git clone git@github.com:{USER}/contextfilter.git
$ make install

To run tests and linters use command below:

$ make lint && make test

If you want to run only tests or linters you can explicitly specify which test environment you want to run, e.g.:

$ make lint-black

License

contextfilter is licensed under the MIT license. See the license file for details.

Latest changes

0.3.0 (2020-8-14)

  • Renamed ContextFilter to ContextVarFilter - Revamped the API - It now accepts ContextVars created by caller. Suggestion for design by @bentheiii
  • Added ConstContextFilter which adds constant attributes to the log record.
  • Fixed #5

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

contextfilter-0.3.0.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

contextfilter-0.3.0-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file contextfilter-0.3.0.tar.gz.

File metadata

  • Download URL: contextfilter-0.3.0.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.7.8 Linux/5.3.0-1034-azure

File hashes

Hashes for contextfilter-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8c0fb54ffb1eb5537979244a0a273ec9a870c326d674d7ad56237de400ac3f70
MD5 7ce1aeaa34bcc9b1f8e973ab6d35f014
BLAKE2b-256 47f266d89ef3de063cd80e497b975b26dd0aeff6ca9d9739c0a5720dfd2f3664

See more details on using hashes here.

File details

Details for the file contextfilter-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: contextfilter-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 3.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.7.8 Linux/5.3.0-1034-azure

File hashes

Hashes for contextfilter-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7c68c4cf58a62230e27c13ab2717b2d7e93508934b62dce59661dbaada8261ec
MD5 5eb0f922930a6e21b513d44627e7aa06
BLAKE2b-256 5d81f95580d147c9aa87228b3535f6a6f6f28f39c55560ba51ebc7f76d54604f

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