Logging django errors to the clickhouse database.
Project description
django-clickhouse-logger
Logging django errors to the clickhouse database.
https://github.com/Sobolev5/django-clickhouse-logger
How to use it
To install run:
pip install django-clickhouse-logger
Add the clickhouse logger to the INSTALLED_APPS:
INSTALLED_APPS = INSTALLED_APPS + ("clickhouse_logger",)
Set clickhouse logger environment variables in a settings.py:
CLICKHOUSE_LOGGER_HOST = 127.0.0.1
CLICKHOUSE_LOGGER_PORT = 9000
CLICKHOUSE_LOGGER_USER = "default"
CLICKHOUSE_LOGGER_PASSWORD = ""
CLICKHOUSE_LOGGER_TTL_DAY = 1 # Log rotation (in days).
CLICKHOUSE_LOGGER_REQUEST_EXTRA = 'session' # Means request.session.
# Extra attribute of django.core.handlers.wsgi.WSGIRequest object for logging.
# You can define own attribute in your custom middleware.
Run the clickhouse database creation script on a server:
python manage.py shell --command="import clickhouse_logger; clickhouse_logger.proxy.clickhouse.create_clickhouse_tables()"
This script will create the database clickhouse_logger
with the table records
for django errors store.
Add the clickhouse logger to your logger configuration in a settings.py:
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"filters": {
"require_debug_true": {"()": "django.utils.log.RequireDebugTrue",},
"require_debug_false": {"()": "django.utils.log.RequireDebugFalse"}
},
"formatters": {
"console": {"format": "%(asctime)s - %(levelname)s - %(message)s"},
},
"handlers": {
"console": {"level": "INFO", "filters": ["require_debug_true"], "class": "logging.StreamHandler", "formatter": "console"},
"clickhouse_logger_handler": {"level": "ERROR", "filters": ["require_debug_false"], "class": "clickhouse_logger.handlers.ClickhouseLoggerHandler"},
},
"loggers": {
"django": {"handlers": ["console"], "level": "INFO",},
"django.request": {"handlers": ["clickhouse_logger_handler"], "level": "ERROR", 'propagate': False},
},
}
To test you can change filter require_debug_false
to require_debug_true
for clickhouse_logger_handler
and raise a error in any django view.
For visual interface to clickhouse table clickhouse_logger.records
i recommend using a Dbeaver.
Little advertisement
WorkHours.Space - Smart working hours accounting system *. Time tracker. Automatic payroll calculation. Uploading reports to PDF and XLS. Modern adaptive interface.
* This is my free service for developers.
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 django_clickhouse_logger-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f762403b6694c75f039b9a53a82ee3854850687b9a0c79e103d610ea07a3cea |
|
MD5 | 293b1664a4a01d4eea39bc48ac8bb36c |
|
BLAKE2b-256 | 934271f658c27cba8c519320cba3e33281948f9cbcff54df9cad7083a9be2e53 |