Рецепты

Добавить ограниченный диагностический контекст

Небольшие технические сведения через ErrorContextProvider без копирования состояния приложения в отчёт.

v0.1.0-dev.1Средний уровеньark_error_manager

Добавить ограниченный диагностический контекст

ErrorContextProvider должен предоставлять сведения, необходимые для диагностики определённого класса ошибок, а не снимок всего приложения.

dart
final class QueueContextProvider implements ErrorContextProvider {
  const QueueContextProvider(this.queue);

  final WorkQueue queue;

  @override
  ErrorContextSection collect(
    ErrorOccurrence occurrence,
    ErrorRuntimeEnvironment environment,
  ) => ErrorContextSection(
    name: 'queue',
    fields: <String, Object?>{
      'pending': queue.pendingCount,
      'capacity': queue.capacity,
    },
  );
}

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

Не собирайте учётные данные, файлы cookie, тела запросов, аргументы маршрутов, пользовательский текст, полное доменное состояние и объекты с неуправляемым выводом toString().

ARKTELOS

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