Рецепты
Добавить ограниченный диагностический контекст
Небольшие технические сведения через 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().