title | version |
---|---|
Logging and error reporting |
1 |
import { Link } from "/src/components/Link"; import { AutoSnippet, When } from "/src/components/CodeSnippet"; import providerObserver from "!!raw-loader!./provider_observer/provider_observer.dart";
Riverpod natively offers a way to listen to all events happening
in the provider tree.
This can be used to log all the events or to report errors to a
remote service.
This is achieved by using the ProviderObserver
class,
and passing it to ProviderScope
/ProviderContainer
.
A ProviderObserver
is a class that should be extended.
It offers various methods which can be overridden to listen to events:
didAddProvider
, called when a provider is added to the treedidUpdateProvider
, called when a provider is updateddidDisposeProvider
, called when a provider is disposedproviderDidFail
, when a synchronous provider throws an error
Now that we've defined an observer, we need to use it.
To do so, we should pass it to either ProviderScope
or ProviderContainer
:
runApp(
ProviderScope(
observers: [
MyObserver(),
],
child: MyApp(),
)
);
final container = ProviderContainer(
observers: [
MyObserver(),
],
);