Такое простое разделение записей по уровням значительно упрощает для нас реагирование на ошибки. Ведь больше не нужно искать их среди всех записей в журнале. Очень похоже на то, что было у нас ранее, кроме добавления имени канала (gb-demo). Здорово, что всё это уже реализовано в большинстве библиотек.
Стандартный модуль logging в Python предоставляет гибкий фреймворк для записи сообщений о событиях в различные выходные потоки, такие как файлы, консоль и даже по электронной почте. Он поддерживает разные уровни сообщений, такие как DEBUG, INFO, WARNING, ERROR и CRITICAL. Иногда лог нужен для ведения хронологии — что в какой момент сработало и с какими параметрами. Например, во сколько кто подключился к системе и какие файлы качал.
Логирование в Python это просто
Все время, которое посвящаю работе, стараюсь логировать в Jira. Даже если поехал в посольство делать корпоративные документы (время в пути не записываю). Мой любимый автор, Питер Друкер, посвятил логированию небольшую часть главы своей книги «Эффективный руководитель».
Кроме того, были продемонстрированы инструменты для сбора и агрегирования логов, такие как Fluent Operator (Fluentd и Fluent Bit) и Elastic Stack. На картинке выше изображен процесс логирования на уровне контейнеров пода. Здесь некоторый контейнер app-container пода my-pod отправляет логи в стандартные потоки stdout и stderr контейнеризированного приложения, где stdout – это поток вывода, а stderr – ошибок. Агент kubelet, подключенный к среде выполнения контейнера с помощью CRI, отвечает за обработку и контроль логов, собранных контейнером. Пользователь может пропускать некоторые строчки, так как они понятны, и сосредотачивать внимание на необходимых ему аспектах. Например, логи оркестратора Apache Airflow информативны и объёмны, но вам быть может нужен только вывод, значения настроек конфигурации, время выполнения или появившаяся ошибка.
Как работать с логированием в Python
Человек, который не может регулярно логировать, скорее всего, не контролирует свое время, не имеет ясного плана на день или неделю, а порой ему просто нечего записать из-за прокрастинации. Человек не понимает, прошла неделя https://deveducation.com/ успешно или провально. Заниматься этим все еще тяжело, но результаты подстегивают. Помимо того, что логи сервиса выделены красным и по ним легко отфильтровать, библиотека так-же показывает разницу во времени между вызовами.
Экран мы не записываем, считаем что это неэтично. Логгирование отдано полностью на совесть автора. У нас норма выработки от 150 часов и мы платим, если возникают сверхурочные — это справедливо. П3 — я хочу системный бизнес, я не хочу логирование это гениев с мотивацией «я так вижу , а что думают коллеги мне не интересно». Я не встречал людей, которые супер продуктивны, но при этом им в падлу записать время. Обычно те кто не может записать время — просто ничего и не делает.
Обработка ошибок
В нашем случае требуется передавать метаинформацию о запросе при взаимодействии серверов и записывать логи в единое хранилище (такими могут быть ClickHouse, Apache Cassandra или MongoDB). Такой подход позволит привязать различные контексты серверов к уникальному идентификатору запроса, а отметки времени — понять последовательность и последнюю выполненную операцию. После этого команда разработки сможет приступить к устранению.
Так можно на ранних этапах найти уязвимость или недочет — еще до того, как он станет проблемой. Каждый раз, когда будет вызываться функция error в файл будет добавляться соответствующая строчка. Используйте подобный прием при запуске своих Python-скриптов. Такие ошибки можно обрабатывать кастомно, отлавливать и отправлять в аналитику, на собственный бэкенд или куда угодно ещё по необходимости.
Также вы можете столкнуться с ошибками на этапе построения виджетов — в build-phase. Хотя использование print/debugPrint и более продвинутого log позволяет успешно сообщать о происходящем в программе в консоль, это далеко не самые удобные инструменты. Задать вопросы специалистам компании «Xelent, получить профессиональную помощь в логировании, узнать условия сотрудничества можно по телефону или через форму обратной связи. Для каждого из них надо создавать отдельный журнал записи в особом формате.
Необходимо настроить логирование на сервере, так как он является общей точкой для всех клиентов и имеет доступ к базе данных. Логи полезны для отладки различных частей приложения, а также для сбора и анализа информации о работе системы с целью выявления ошибок. Всё это необходимо для контроля работы приложения, так как даже после релиза могут встретиться ошибки, а пользователи не всегда сообщают о багах в техподдержку. Чем больше процессов у вас автоматизировано, тем быстрее будет идти разработка.