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.
P.S.
Try my free service for developers Workhours.space. It is time tracker with simple interface, powerful functionality such as automatic payroll calculation, telegram bot timer, easy web2 and web3 auth, and more. Enjoy.
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.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e53142bbad3098d9e2be8389f53854f61dc9948afdecf272f1354441ddd6e731 |
|
MD5 | f4c697a99215e7fbdf2d33f810a8e6eb |
|
BLAKE2b-256 | a1ec6b42ca3943307b5e5aa86612034229ce5cc16c0a9eabd3da9c1ff0b6c9b1 |