A simple logging system for (async) contexts
Project description
This module helps to solve the following problem:
You have an async program. It does lots of things in parallel.
You don't really know what's happening. Then you get a deadlock,
or a cancellation whose initial trigger is masked by another error
or an unprotected async call within a finally:
block.
You now have no idea what's happening, and low-level instrumentation of your code causes the error to get lost in the noise.
Here's how logcontext
can help.
First, wrap your main code::
from logcontext import main_context
def main():
with main_context():
... # whatever your program does
Then you wrap each possibly-interesting block, nursery, async context, … with
from logcontext import context_of
...
async def code_of_interest(arg):
with context_of("interesting: %s", arg) as ctx:
... # start some subtask
# display what my subcontexts are doing, if anything
ctx.log_tree()
Text and positional arguments will be passed to logging.log
.
Reporting on the current state of your code is then as easy as::
from logcontext import log_backtrace, log_tree
...
log_tree() # reports the whole program's context tree
log_backtrace() # reports the contexts leading to the current code
Both context_of
and log_tree
accept a log level. This way you can
selectively attach higher log levels to possibly-interesting code.
"Uninteresting" subtrees are skipped.
"""
from ._main import main_context, context_of, log_backtrace, log_tree
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file logcontext-0.1.1.tar.gz
.
File metadata
- Download URL: logcontext-0.1.1.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.8.2 requests/2.25.1 setuptools/65.3.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e480277f542e058c31192ef1d1405f6cb3ce42ab944ebe37b640d359d0b376a6 |
|
MD5 | bb7655d2cdb2d8df20eba9dfa6816ad9 |
|
BLAKE2b-256 | 79ef77dc69541a6e8c252dc2fde062589577db660c50d784cf6bf6faf621dbf7 |
File details
Details for the file logcontext-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: logcontext-0.1.1-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.8.2 requests/2.25.1 setuptools/65.3.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d527838a09092668e80c242bd31e20785d21e1e498a9094166c01b4ed8c0d6e9 |
|
MD5 | ef8f2f257baef012e04f1db4ecff1eb8 |
|
BLAKE2b-256 | 918840e57c0fdde654da660e9ac291d54f30ed5d86b5e7ab7abffe54a442cd12 |