Логирование в телеграмме что это
Логирование в телеграмм, или история о том, как я сделал питон библиотеку
Intro
Давным-давно, а точнее несколько месяцев назад, накануне Нового года, я сидел дома и решал задачу по машинному обучению. Связана она была с нейронными сетями и классификацией текстов, поэтому я естественно пользовался бесплатным GPU от гугла (colab). За окном шел снег, а модели обучались ну уж очень долго. Обучать модель оставалось всего несколько минут, как вдруг появляется уведомление, что подключение к runtime потеряно, а это значит, что обученную модель и сабмиты из этого runtime скачать я не смогу, и все придется начинать заново.
Данная ситуация меня расстроила и заставила задуматься от том, что надо как-то через код сохранять файлы, потому что процесс выполнения кода не прекращается, когда возникает такая ошибка. Почему-то я сразу подумал про телеграмм ботов и, написав несколько функций, смог сохранять самбиты и промежуточную информацию о том, как обучается модель и сколько ей осталось.
Копировал для этот код из ноутбука (jupyter notebook) в ноутбук, а потом осознал, что это можно встроить в модуль logging и завернуть в библиотеку, чтобы не таскать каждый раз большие куски кода, а использовать всего пару строк.
Logging.handlers
Понятно было, что за основу надо взять модуль для логирование, встроенный в питон. Очевидно, потому что изобретать свой велосипед мне не хотелось, а еще потому что, для использования в приложениях пришлось бы переписывать весь код логирования. Надо было найти способ перехватывать логи, и пересылать их в телеграмм. К счастью, в logging есть такой класс, как StreamHandler. Не буду вдаваться в подробности, но с помощью него можно сделать свою функцию, которая будет запускаться для каждой новой строки в логах и отправлять ее в телеграмм.
Tg-logger
И вот, держа в голове все вышеописанные идеи, я отправился писать свою библиотеку. Вот, что получилось.
Для тех, кому лень запускать код, но хочется понять, как это будет работать, я сделал бота @tg_logger_demo_bot.
Чтобы воспользоваться библиотекой нужно:
создать телеграмм бота (как это сделать описано здесь)
получить свой user_id (это можно сделать через @tg_logger_demo_bot с помощью команды /id )
Установим библиотеку через pip.
Рассмотрим код примера
Особо интересна для нас строка, в которой подключается логирование в телеграмм.
В функцию setup() нужно просто передать тот logger, к которому вы хотите подключить мост. Если заглянуть в документацию, то можно посмотреть на другие параметры функции setup(). С помощью них можно, в частности, настроить формат, в котором логи будут отправлены.
Outro
Весь исходный код есть на гитхабе: github.com/otter18/tg_logger.
Документация на английском есть на Read the Docs.
Логирование в телеграм, или история о том, как я сделал питон библиотеку
Intro
Давным-давно, а точнее несколько месяцев назад, накануне Нового года, я сидел дома и решал задачу по машинному обучению. Связана она была с нейронными сетями и классификацией текстов, поэтому я естественно пользовался бесплатным GPU от гугла (colab). За окном шел снег, а модели обучались ну уж очень долго. Обучать модель оставалось всего несколько минут, как вдруг появляется уведомление, что подключение к runtime потеряно, а это значит, что обученную модель и сабмиты из этого runtime скачать я не смогу, и все придется начинать заново.
Данная ситуация меня расстроила и заставила задуматься от том, что надо как-то через код сохранять файлы, потому что процесс выполнения кода не прекращается, когда возникает такая ошибка. Почему-то я сразу подумал про телеграм ботов и, написав несколько функций, смог сохранять самбиты и промежуточную информацию о том, как обучается модель и сколько ей осталось.
Копировал я этот код из ноутбука (jupyter notebook) в ноутбук, а потом осознал, что это можно встроить в модуль logging и завернуть в библиотеку, чтобы не таскать каждый раз большие куски кода, а использовать всего пару строк.
Logging.handlers
Понятно было, что за основу надо взять модуль для логирования, встроенный в питон. Очевидно, потому что изобретать свой велосипед мне не хотелось, а еще потому что, для использования в приложениях пришлось бы переписывать весь код логирования. Надо было найти способ перехватывать логи, и пересылать их в телеграмм. К счастью, в logging есть такой класс, как StreamHandler. Не буду вдаваться в подробности, но с помощью него можно сделать свою функцию, которая будет запускаться для каждой новой строки в логах и отправлять ее в телеграмм.
Tg-logger
И вот, держа в голове все вышеописанные идеи, я отправился писать свою библиотеку. Вот, что получилось.
Для тех, кому лень запускать код, но хочется понять, как это будет работать, я сделал бота @tg_logger_demo_bot.
Чтобы воспользоваться библиотекой нужно:
создать телеграмм бота (как это сделать описано здесь)
получить свой user_id (это можно сделать через @tg_logger_demo_bot с помощью команды /id )
Установим библиотеку через pip.
Рассмотрим код примера
Особо интересна для нас строка, в которой подключается логирование в телеграмм.
В функцию setup() нужно просто передать тот logger, к которому вы хотите подключить мост. Если заглянуть в документацию, то можно посмотреть на другие параметры функции setup(). С помощью них можно, в частности, настроить формат, в котором логи будут отправлены.
TgFileLogger
Стоит также упомянуть, что функцию отправки файлов я тоже добавил.
Outro
Весь исходный код есть на гитхабе: github.com/otter18/tg_logger.
Документация на английском есть на Read the Docs.
Не секрет, что Telegram является на данный момент одним из самых популярных мессенджеров. Особенно в среде ИТ-специалистов. Он удобен, в нем нет встроенной рекламы и работает весьма стабильно. Довольно большую часть времени я общаюсь как по работе, так и по личным вопросам именно в этом мессенджере. Поэтому в один прекрасный день я подумал о том, что было бы удобно, чтобы в этом же мессенджере я мог получать уведомления о работе некоторых своих сервисов. На тот момент я как раз активно работал над интеграцией проекта //devdigest и Telegram, поэтому используя тот же родной Telegram Bot SDK довольно быстро реализовал логгер.
Несколько дней назад я решил вернуться к этому проекту, слегка почистить и отрефакторить код, а затем выложить его в открытый доступ – быть может возможность получения логов в Телеграм будет полезна кому-то еще.
Вот в таком виде приходят логи в телеграмм из одного из проектов, которыми я занимаюсь
Подготовка
Прежде чем перейти к настройке самого логгера необходимо будет выполнить несколько предварительных шагов. А именно – создать канал (публичный, или приватный), где будут отображаться логи и создать бота в телеграмм, через которого и будет реализован процесс публикации логов.
Согласно инструкции на официальном сайте Telegram, для того чтобы создать бота нам нужен другой бот. Детально описывать весь процесс создания бота я здесь не буду, так как сами разработчики Telegram описали его максимально просто и доступно. Отмечу лишь то, что нам нужно будет получить токен новосозданного бота, а также этого бота нужно будет добавить администратором в тот канал, где мы хотим видеть логи.
Получение идентификатора приватного канала.
Чтобы получить идентификатор приватного канала придется воспользоваться помощью еще одного бота – @JsonDumpBot. Вам нужно будет любое сообщение из этого канала переслать в этот бот. В ответ вы получите сообщение примерно такого вида:
Теперь, имея идентификатор чата и токен бота мы можем перейти к настройке логгера.
Настройка логгера
Для конфигурации логгера используется класс TelegramLoggerOptions, который содержит следующие поля:
AccessToken – токен бота;
ChatId – идентификатор канала (приватного, или публичного), или чата, куда бот будет отправлять сообщения;
LogLevel – минимальный уровень сообщений, которые будут отправляться в канала. Обычно я в канал отправляю сообщения начиная с уровня Warning, или Error;
Source – удобочитаемое название сервиса. Полезно, если в один канал приходят сообщения из нескольких сервисов;
Существует несколько вариантов конфигурации логгера – непосредственно через код, или через файл кофигурации.
Настройка логгера в коде
Для начала нужно создать и инициализировать экземпляр класса TelegramLoggerOptions.
Зачем передать этот объект в метод-расширение AddTelegram():
Пример такой конфигурации можно посмотреть здесь.
Настройка логгера через файл конфигурации appconfig.json
Также блоггер можно настраивать через файл конфигурации приложения, как это показано ниже:
Далее, в метод-расширение AddTelegram() необходимо передать экземпляр IConfiguration,
Установка
Установить логгер можно из NuGet, или же интегрировать код прямо к себе в проект. Библиотека распространяется под лицензией MIT.
Access-логи сайта для seo: автоматический анализ и отправка отчетов в Telegram
В данной статье описан пошаговый мануал по скачиванию логов с сервера, их объединении и парсинге с помощью Python, а также формирование необходимых отчетов с последующей отправкой в Telegram. Подробные комментарии приведены в коде соответствующих скриптов.
В предыдущей статье “Набор Python-скриптов для автоматизации seo задач” я уже затрагивал тему анализа access-логов сайта в целях seo-оптимизации. В данной статье не будет подробного описания, что такое логи и для чего их анализировать. В качестве теории приведу несколько ссылок на ресурсы, которые встречал за последнее время:
Данный подход будет полезен для изучения логов больших сайтов (от 1 млн. строк). Преимущества подхода: делаем свой бесплатный инструмент с кастомными отчетами.
Работа над логами будет проходить в несколько этапов:
Каждый этап вынесен в отдельный скрипт, который отрабатывает в установленное время на выделенном сервере по cron.
Логи анализируемого сайта в моем случае хранятся на выделенном сервере в виде gz архивов.
Подход по скачиванию файлов, представленный в данной части, индивидуален, и предназначен для работы конкретного анализируемого сайта. Однако, часть рассмотренных подходов поможет вам настроить получение файлов для вашего сайте.
Задача данного скрипта каждый день в 23:55 скачивать с сервера и разархивировать логи за последние 7 дней.
Следующим шагом будет предобработка получившихся лог-файлов, построение и сохранение отчетов. Предобработка файлов заключается в их склейке, парсинге нужных полей и сохранении в csv.
Важно отметить, что большая часть отчетов, например, отчет по посещаемым разделам, также формируется для конкретного сайта, поэтому не забываем перестроить отчет под анализируемый проект.
В результате работы данного скрипта получаем csv файл с распарсенными логами (в моем случае анализируемый файл получился 644 MB) и набор сохраненных отчетов, которые будем использовать в дальнейшем для отправки.
Телеграм что это такое и как пользоваться
Многие любители мессенджеров спрашивают, в чем особенности Телеграмм, что это такое, и как им пользоваться. Простыми словами, это бесплатное приложение для ПК и телефонов, предназначенное для обмена сообщениями, а также разными видами файлов. Ниже рассмотрим основные моменты, о которых необходимо знать пользователям программы.
Краткая история
Перед рассмотрением, что такое Телеграм и как им пользоваться, можно кратко вспомнить историю. Основателем проекта стал Павел Дуров. В одно из интервью он рассказал, что впервые идея о создании нового мессенджера пришла в 2011 году во время обыска полицией специального назначения. Для защиты переписки Павел вместе с братом Николаем создали мессенджер с шифрованием MTProto, обеспечивающим полную конфиденциальность.
В 2013 году в Сети появилась программ для скачивания, а уже к ноябрю у нее было почти 1 миллион скачиваний. В 2014-м появилось приложение на App Store. В дальнейшем проект продолжал развиваться. В нем добавились стикеры, возможность редактирования сообщений и другие опции. В 2017 и 2018 годах имели место конфликты с властями РФ, которые настаивали на передаче контроля за перепиской. Из-за отказа Павла Дурова идти на уступки правоохранителям пришлось ограничить действие приложения в стране. Попытки блокировки предпринимаются и сегодня.
Что это, и зачем он нужен
По информации из Википедии Телеграм представляет собой кроссплатформенный мессенджер, предназначенный для обмена сообщениями и файлами. Количество пользователей на 2020 год превышает 200 млн человек. Несмотря на запрет в России, Telegram популярен, в первую очередь в Москве.
Начинающие пользователи часто спрашивают, что можно делать с помощью мессенджера. Функции Телеграмма:
При рассмотрении вопроса, что такое Телеграм, и для чего он нужен, стоит упомянуть особенности мессенджера. У приложения есть ряд преимуществ, выделяющих его среди других программ:
С учетом сказанного не удивительно, что Телеграм занимает лидирующие позиции среди других мессенджеров. Это подтверждает Вики и реальная статистика.
Как пользоваться
После выбора приложения человек задается вопросом, как пользоваться Телеграмм на ПК или телефоне. Выделим основные моменты.
Регистрация
Для начала необходимо скачать мессенджер и пройти в нем регистрацию. Для получения аккаунта можно использовать любой из вариантов программы — онлайн, десктопная версия, приложение для мобильного. Дальнейшие шаги во всех случаях почти идентичны:
После входа пользователю доступен список контактов, с которыми можно общаться. Перед тем как пользоваться Телеграмм на телефоне или ПК, необходимо добавить фамилию и имя, аватар и ник. В дальнейшем можно заходить в программу с любого устройства под зарегистрированными данными.
Обычные и секретные чаты
В Telegram доступно два вида общения. Простые чаты подразумевают открытое общение, которое доступно на всех устройствах. Здесь можно удалять любые сообщения (свои или собеседника). В простых чатах доступен таймер для удаления фотографий и видео. При секретном общении применяется сквозное шифрование. Сведения не хранятся в облаке, а только в устройствах отправителя и получателя. Здесь также доступна опция удаления сообщения и файлов через определенное время.
Стикеры
Во время общения можно использовать стикеры, которые бесплатны и доступны всем желающим. В Телеграм они особенно красивы и имеют большие размеры. С помощью таких картинок легче выражать эмоции.
Каналы
Одна из главных опций мессенджера — возможность создавать небольшие блоги внутри Телеграм. В таких каналах можно делиться новостями и общаться с другими пользователями. Минус в том, что оставлять здесь лайки и комментарии не получится. Доступен обычный обмен сообщениями и отправка стикеров.
Это специальные программы, выполняющие определенные команды. В их функции может входить поиск какой-то информации в Интернете или решение иных задач. Наиболее простой пример — настройка бота на утреннюю новостную рассылку. При желании можно создавать свои программы или использовать уже имеющиеся.
Настройки
Рассматривая возможности Telegram, и как пользоваться на компьютере или телефоне, важно учесть тонкости настройки приложения. Для входа в этот раздел жмите на три полоски слева вверху (для ПК). Там доступно создание канал, создания группы, переход в контакты и звонок.
В разделе настройки можно поменять профиль, внести правки в конфиденциальность и уведомления, поменять язык и масштаб. При переходе в раздел Продвинутые настройки можно задать тип соединения, изменить путь сохранения файлов и внести другие правки.
Итоги
Теперь вы знаете особенности Телеграм, что это такое, и в чем преимущества программы. Остается принять решение — стоит ли использовать менеджер, и нужны ли вам его возможности.