useDevPanelLogging method
void
useDevPanelLogging({})
Enable external dev panel logging integration.
This sets up callbacks for both console logging (NyLogger) and route tracking (NyRouteHistoryObserver) to forward events to an external logging system like DevPanelStore.
The onLog callback receives console log messages with:
message: The log message contentlevel: The log level (debug,info,warning,error)tag: Optional tag for categorizing logsstackTrace: Optional stack trace for error logsmetadata: Optional additional metadata
The onRouteChange callback receives route navigation events with:
action: The navigation action (push,pop,remove,replace)routeName: The name of the routearguments: Optional route argumentspreviousRoute: The name of the previous route
Example with DevPanelStore:
nylo.useDevPanelLogging(
onLog: (message, level, {tag, stackTrace, metadata}) {
DevPanelStore.instance.log(
message,
level: DevPanelLogLevel.values.byName(level),
tag: tag,
stackTrace: stackTrace,
metadata: metadata,
);
},
onRouteChange: (action, routeName, {arguments, previousRoute}) {
switch (action) {
case 'push':
DevPanelStore.instance.trackRoutePush(routeName, arguments: arguments, previousRoute: previousRoute);
break;
case 'pop':
DevPanelStore.instance.trackRoutePop(routeName, previousRoute: previousRoute);
break;
case 'replace':
DevPanelStore.instance.trackRouteReplace(routeName, arguments: arguments, previousRoute: previousRoute);
break;
case 'remove':
DevPanelStore.instance.trackRoutePop(routeName, previousRoute: previousRoute);
break;
}
},
);
Implementation
void useDevPanelLogging({
void Function(
String message,
String level, {
String? tag,
String? stackTrace,
Map<String, dynamic>? metadata,
})?
onLog,
void Function(
String action,
String routeName, {
Object? arguments,
String? previousRoute,
})?
onRouteChange,
}) {
if (onRouteChange != null) {
NyRouteHistoryObserver.onRouteChange = onRouteChange;
}
}