The plugin allows to transfer a context between functions. Inspired by context-logging.
You can use it for logging data which does not change and can be correlated, e.g. trace_id
, correlation_id
etc.
- Thread-safe context management
- Customizable log records
- Easy-to-use API
pip install kontext
import logging
from kontext import Context, current_context, setup_log_record
logging.basicConfig(format="%(message)s %(kontext)s", level=logging.INFO)
logger = logging.getLogger(__name__)
def bar():
current_context["foo"] = "bar"
logger.info("bar")
@Context()
def foo():
current_context["key"] = "value"
logger.info("foo")
bar()
setup_log_record()
foo()
logger.info("Finish")
# foo {'key': 'value'}
# bar {'key': 'value', 'foo': 'bar'}
# Finish {}
For more examples, please refer to the examples directory.