Metadata-Version: 2.1
Name: clickhouse_django_logger
Version: 0.1.3
Summary: Логгер Django для ClickHouse с интеграцией Celery.
Home-page: https://github.com/single-service/clickhouse_django_logger
Author: Алексей
Author-email: Алексей <vipzenit666666@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/single-service/clickhouse_django_logger
Project-URL: Issues, https://github.com/single-service/clickhouse_django_logger/issues
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: Django>=2.2
Requires-Dist: celery>=5.0
Requires-Dist: requests>=2.0
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"

# clickhouse-django-logger

## Описание

Этот проект предоставляет возможность логировать ошибки Django в базу данных Clickhouse.
Логи записываются через отложенные задачи в celery, в отдельной очереди, чтобы не нагружать другие воркеры.


### Установка

Установите через pip:

```bash
pip install clickhouse-django-logger  # Установка стабильной версии
pip install -U git+https://github.com/single-service/clickhouse_django_logger.git@master  # Установка версии разработки
```
Добавьте clickhouse_django_logger в INSTALLED_APPS:
```bash
INSTALLED_APPS = INSTALLED_APPS + ("clickhouse_django_logger",)
```

Установите переменные среды для Clickhouse logger в settings.py:
```bash
DJANGO_CLICKHOUSE_LOGGER_HOST = "clickhouse"
DJANGO_CLICKHOUSE_LOGGER_PORT = 8123
DJANGO_CLICKHOUSE_LOGGER_USER = "default"
DJANGO_CLICKHOUSE_LOGGER_PASSWORD = "default"
# Для создания отдельной очереди для celery:
CELERY_TASK_QUEUES = {
    'logger': {
        'exchange': 'logger',
        'exchange_type': 'direct',
        'binding_key': 'logger',
    },
}
```
Добавьте Clickhouse logger в конфигурацию логгера в settings.py:
```bash
LOGGING = {
    "version": 1,
    "disable_existing_loggers": False,
    "formatters": {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    "handlers": {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'error': {
            'level': 'INFO',
            'class': 'logging.handlers.WatchedFileHandler',
            'filename': 'logs/error.log',
            'formatter': 'verbose'
        },
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler',
        },
        'info': {
            'level': 'INFO',
            'class': 'logging.handlers.WatchedFileHandler',
            'filename': 'logs/info.log',
            'formatter': 'verbose'
        },
        "django_clickhouse_logger": {
            "level": "INFO",
            "class": "clickhouse_django_logger.handlers.LoggerHandler",
        },
    },
    "loggers": {
        'django.request': {
            'handlers': ['mail_admins', 'django_clickhouse_logger', 'console'],
            'level': 'ERROR',
            'propagate': False,
        },
        'django.template': {
            'handlers': ['django_clickhouse_logger', 'mail_admins'],
            'level': 'ERROR',
            'propagate': False,
        },
        'info': {
            'handlers': ['django_clickhouse_logger'],
            'level': 'INFO',
        },
        'celery': {
            'handlers': ['console', 'django_clickhouse_logger'],
            'level': 'ERROR',
            'propagate': True
        },
    },

}
```
### Контакты
Если у вас есть вопросы или предложения, не стесняйтесь связаться со мной по электронной почте: singleservice2022@gmail.com
