Skip to main content

a simple logger that sends 500 exceptions to a Telegram bot of your choice.

Project description

====================== Django Log to Telegram

This is a simple logger that sends 500 exceptions to a Telegram bot of your choice.

Quick start

Install django-log-to-telegram:

.. code:: bash

pip install django_log_to_telegram
  1. register a bot on Telegram (with BotFather <https://core.telegram.org/bots#6-botfather>_), start a chat with it and put the Api token in settings.py:

.. code:: python

LOG_TO_TELEGRAM_BOT_TOKEN = '12345678:replace-me-with-real-token'

Different errors will be fired if the BOT_TOKEN is not active or if there is no chat active with it.

  1. add the 'django_log_to_telegram' to your INSTALLED_APPS setting:

.. code:: python

INSTALLED_APPS = [
    ...
    'django_log_to_telegram',
    ...
]
  1. add the django_log_to_telegram.log.AdminTelegramHandler to your app's logging configuration, for example:

.. code:: python

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'telegram_log': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django_log_to_telegram.log.AdminTelegramHandler',
            'bot_token': LOG_TO_TELEGRAM_BOT_TOKEN,
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['telegram_log'],
            'level': 'ERROR',
            'propagate': True,
        },
    },
}

if you want to test this logger in a debug environment, just remove the filters': ['require_debug_false'], line in the 'handlers' dictionary.

  1. Run python manage.py migrate to create the django_log_to_telegram models.

If everything went well, you bot will then begin sending messages on 500 exceptions.

There is a very basic test app provided in the folder test_app. It is configured to send errors to telegram even with DEBUG active, so that it can be useful with just a

.. code:: python

./manage.py runserver

It does not provide any database configuration, and most of Django basic settings are stripped out, so any use of it outside the very basic testing of the django_log_to_telegram mechanism is deprecated to say the least.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_log_to_telegram-2023.12.18.tar.gz (20.5 kB view hashes)

Uploaded Source

Built Distribution

django_log_to_telegram-2023.12.18-py3-none-any.whl (19.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page