handleLoggingEvent method

  1. @protected
  2. @mustCallSuper
Future<void> handleLoggingEvent(
  1. Event event
)

Handles a dart:developer log() event, sending output to the client.

Implementation

@protected
@mustCallSuper
Future<void> handleLoggingEvent(vm.Event event) async {
  final record = event.logRecord;
  final thread = isolateManager.threadForIsolate(event.isolate);
  if (record == null || thread == null) {
    return;
  }

  var loggerName = await getFullString(thread, record.loggerName);
  if (loggerName?.isEmpty ?? true) {
    loggerName = 'log';
  }
  final message = await getFullString(thread, record.message);
  final error = await getFullString(thread, record.error);
  final stack = await getFullString(thread, record.stackTrace);

  final prefix = '[$loggerName] ';

  if (message != null) {
    sendPrefixedOutput('console', prefix, '$message\n');
  }
  if (error != null) {
    sendPrefixedOutput('console', prefix, '$error\n');
  }
  if (stack != null) {
    sendPrefixedOutput('console', prefix, '$stack\n');
  }
}