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.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 790c097ffe6906c0c9b318027018e1d6433073059997471e0747815057f7d595 |
|
MD5 | deeded9c19e4019da71a571e2b261c7d |
|
BLAKE2b-256 | 6c3b9b6118bb8c678058ac09c2d2a90e3bc26de857d85f1243f4157250bf595b |