← Назад ко всем вопросам

Что делать, если логов “нет” или они бесполезны (просить добавить контекст, ids, структуру)

1️⃣ Как кратко ответить

Если логов нет или они бесполезны, необходимо запросить у разработчиков добавление более детализированных логов. Это включает в себя добавление контекста, уникальных идентификаторов (IDs) и структурированной информации, чтобы облегчить диагностику и анализ проблем.

2️⃣ Подробное объяснение темы

Логи — это важный инструмент для диагностики и анализа работы программного обеспечения. Они помогают выявлять и устранять ошибки, а также понимать, как система ведет себя в различных ситуациях. Однако, если логи отсутствуют или содержат недостаточную информацию, это может затруднить процесс тестирования и отладки.

Зачем нужны логи?

  1. Диагностика ошибок: Логи позволяют быстро определить, где и почему произошла ошибка.
  2. Анализ производительности: С их помощью можно отслеживать время выполнения операций и выявлять узкие места.
  3. Аудит и безопасность: Логи фиксируют действия пользователей и системные события, что важно для аудита и обеспечения безопасности.

Что делать, если логов нет или они бесполезны?

  1. Запросить добавление контекста: Контекст включает в себя информацию о том, в каком состоянии находилась система в момент записи лога. Это может быть текущее состояние переменных, параметры вызова функций и т.д.

  2. Добавить уникальные идентификаторы (IDs): IDs помогают отслеживать конкретные запросы или транзакции через всю систему. Это особенно полезно в распределенных системах, где один запрос может проходить через множество сервисов.

  3. Структурировать логи: Структурированные логи (например, в формате JSON) легче анализировать и обрабатывать автоматически. Они позволяют быстро фильтровать и искать нужную информацию.

Пример улучшения логов

Рассмотрим пример кода, где логи изначально бесполезны:

def process_order(order_id):
    print("Processing order")
    # ... код обработки заказа ...
    print("Order processed")

В этом примере логи не содержат информации о том, какой именно заказ обрабатывается. Улучшим их:

def process_order(order_id):
    print(f"Processing order with ID: {order_id}")
    # ... код обработки заказа ...
    print(f"Order with ID: {order_id} processed")

Объяснение:

  • print(f"Processing order with ID: {order_id}"): Добавление ID заказа в лог позволяет точно определить, какой заказ обрабатывается в данный момент.
  • print(f"Order with ID: {order_id} processed"): Завершение обработки также логируется с указанием ID, что помогает отследить полный цикл обработки конкретного заказа.

Заключение

Добавление контекста, уникальных идентификаторов и структурированной информации в логи значительно повышает их полезность. Это позволяет быстрее и точнее диагностировать проблемы, улучшает анализ производительности и обеспечивает более высокий уровень безопасности и аудита.

Тема: Логи, мониторинг и анализ
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки