Non-blocking HTTP handler for Python `logging` with local SQLite buffer/cache.
Project description
Asynchronous HTTP Logging
Non-blocking HTTP handler for Python logging
with local SQLite buffer/cache.
This library was written for Hackt CLI and open sourced for anyone interested.
Documentation
Please refer to the project Wiki.
Installation
Virtual environment is highly recommended.
pip install http_logging
Basic usage
import logging
from http_logging import AsyncHttpHandler
log_handler = AsyncHttpHandler(host='your-domain.com')
logger = logging.getLogger()
logger.addHandler(log_handler)
logger.info('Some useful information...')
logger.error('Ooops!')
These log messages are cached in a local SQLite database and periodically delivered (asynchronously, in a separate thread) to your host in a POST request with a body similar to this one:
[
{
"type": "async-http-logging",
"created": 1610393068.365492,
"relative_created": 1505.5122375488281,
"message": "Some useful information...",
"level": {
"number": 20,
"name": "INFO"
},
"sourcecode": {
"pathname": "/path/to/your/python/script.py",
"function": "function_name",
"line": 123
},
"process": {
"id": 1234,
"name": "MainProcess"
},
"thread": {
"id": 1234567890,
"name": "MainThread"
}
},
{
"type": "async-http-logging",
"created": 1610393068.3663092,
"relative_created": 1506.3292980194092,
"message": "Ooops!",
"level": {
"number": 40,
"name": "ERROR"
},
"sourcecode": {
"pathname": "/path/to/your/python/script.py",
"function": "function_name",
"line": 456
},
"process": {
"id": 1234,
"name": "MainProcess"
},
"thread": {
"id": 1234567890,
"name": "MainThread"
}
}
]
In your backend, you can funnel these logs to wherever suits you best: database, ElasticSearch index, third-party monitoring service, etc.
Learn more about these and other features in the project Wiki.
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 Distributions
Built Distribution
Hashes for http_logging-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a48e27a7990a2701b5cd2a39e3e4904e87294f8c29b8b5856a3e60c3ad54c1e |
|
MD5 | b29a70bac0cd4c8bf6fac19fe2941d47 |
|
BLAKE2b-256 | 710b5b141072670b2a6cdade9826dcf4a458e563ba4fcce4dfeb2ab3da76cc9d |