Как извлекать логи из клиентского приложения (веб/мобильного)?

«Как извлекать логи из клиентского приложения (веб/мобильного)?» — вопрос из категории Логирование и мониторинг, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Извлечение логов зависит от типа клиентского приложения и требуется для отладки, анализа сбоев и мониторинга.

Веб-приложения (браузер):

  1. Консоль разработчика (F12):
    • Console — вывод console.log(), ошибки JavaScript.
    • Network — логи HTTP-запросов/ответов, статусы, тайминги.
    • Application — данные LocalStorage, SessionStorage, Cookies.
  2. Встроенное логирование: Код приложения может отправлять логи на сервер или в внешние системы (Sentry, LogRocket).

Мобильные приложения:

  1. Android:
    # Просмотр логов через adb
    adb logcat
    # Фильтрация по тегу приложения
    adb logcat -s "MyAppTag"
  2. iOS:
    • Консоль в Xcode (Devices and Simulators).
    • Приложение Console на macOS.

Пример инструментального логирования в коде:

// Использование библиотеки с уровнями логирования
import logger from 'client-logger';

logger.debug('User clicked button:', { buttonId: 'submit' });
logger.info('API request sent to:', endpoint);
logger.error('Fetch failed:', error);

// Логи могут отправляться на бэкенд при ошибках
window.addEventListener('unhandledrejection', event => {
  logger.sendToServer('UNHANDLED_ERROR', event.reason);
});

Для тестирования часто активируют режим отладки или используют специальные сборки с расширенным логированием.