useDevPanelLogging method

void useDevPanelLogging({
  1. void onLog(
    1. String message,
    2. String level, {
    3. Map<String, dynamic>? metadata,
    4. String? stackTrace,
    5. String? tag,
    })?,
  2. void onRouteChange(
    1. String action,
    2. String routeName, {
    3. Object? arguments,
    4. String? previousRoute,
    })?,
})

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 content
  • level: The log level (debug, info, warning, error)
  • tag: Optional tag for categorizing logs
  • stackTrace: Optional stack trace for error logs
  • metadata: Optional additional metadata

The onRouteChange callback receives route navigation events with:

  • action: The navigation action (push, pop, remove, replace)
  • routeName: The name of the route
  • arguments: Optional route arguments
  • previousRoute: 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;
  }
}