ContextVars Filter for easily enriching log records
Project description
contextfilter
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
ContextFiltertoContextVarFilter- Revamped the API - It now accepts ContextVars created by caller. Suggestion for design by @bentheiii - Added
ConstContextFilterwhich 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c0fb54ffb1eb5537979244a0a273ec9a870c326d674d7ad56237de400ac3f70
|
|
| MD5 |
7ce1aeaa34bcc9b1f8e973ab6d35f014
|
|
| BLAKE2b-256 |
47f266d89ef3de063cd80e497b975b26dd0aeff6ca9d9739c0a5720dfd2f3664
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c68c4cf58a62230e27c13ab2717b2d7e93508934b62dce59661dbaada8261ec
|
|
| MD5 |
5eb0f922930a6e21b513d44627e7aa06
|
|
| BLAKE2b-256 |
5d81f95580d147c9aa87228b3535f6a6f6f28f39c55560ba51ebc7f76d54604f
|