Files
cherrypick/website/i18n/ru/docusaurus-plugin-content-docs/current/advanced-features/logging.md
Sergey Penkovsky 9fee26c524 feat(i18n): add initial Russian localization for documentation and site config
- Added full Russian translations for all main documentation sections () into .
- Sections translated include: key features, installation, getting started, all core concepts, advanced features, API reference, FAQ, links, additional modules, contributing, and license.
- Updated  to ensure language switching is available and Russian locale is active.
- Each Russian file preserves the structure and formatting of the original Markdown, with machine-aided draft translation for immediate use.
- Lays the groundwork for UI language switching (en/ru) and enables further manual translation refinement and review.
2025-08-14 15:46:53 +03:00

2.6 KiB
Raw Blame History

sidebar_position
sidebar_position
2

Логирование

CherryPick позволяет логировать все события и ошибки DI с помощью расширяемого observer-механизма.

Кастомные Observer'ы

Вы можете передавать свою реализацию CherryPickObserver в root- или любой подскоуп. Это позволяет централизовать и настраивать логирование, направлять логи в консоль, файл, сторонние сервисы или системы как Talker.

Пример: вывод всех событий в консоль

import 'package:cherrypick/cherrypick.dart';

void main() {
  // Встроенный PrintCherryPickObserver для консоли
  final observer = PrintCherryPickObserver();
  final scope = CherryPick.openRootScope(observer: observer);
  // Все события и ошибки DI будут выведены!
}

Пример: расширенное логирование через Talker

Для более гибкого логирования или UI-оверлеев можно использовать observer наподобие talker_cherrypick_logger:

import 'package:cherrypick/cherrypick.dart';
import 'package:talker/talker.dart';
import 'package:talker_cherrypick_logger/talker_cherrypick_logger.dart';

void main() {
  final talker = Talker();
  final observer = TalkerCherryPickObserver(talker);
  CherryPick.openRootScope(observer: observer);
  // Все события попадают в Talker!
}

Поведение по умолчанию

  • По умолчанию логирование "тихое" (SilentCherryPickObserver) для production — нет вывода без observer'а.
  • Можно назначить observer для любого скоупа.

Возможности Observer'а

  • Регистрация зависимостей
  • Получение/создание/удаление экземпляров
  • Установка/удаление модулей
  • Открытие/закрытие скоупов
  • Кэш-хиты/мимо
  • Обнаружение циклов
  • Диагностика, предупреждения, ошибки

Когда применять

  • Подробное логирование в dev/test окружениях
  • Передача логов в основную систему/аналитику
  • Отладка и профилирование DI