debugLog function

void debugLog(
  1. String message, {
  2. LogLevel level = LogLevel.info,
})

Logs messages to console in debug mode with optional level.

Also feeds the DevTools Logs tab (see CorextraDevTools) whenever devtools capture is enabled.

Example:

debugLog('This is an info message');
debugLog('This is a warning', level: LogLevel.warning);
debugLog('This is an error', level: LogLevel.error);

Implementation

void debugLog(String message, {LogLevel level = LogLevel.info}) {
  if (kDebugMode) {
    deferredLog(() => '[${level.name.toUpperCase()}] $message');
  }

  // Not gated on kDebugMode: DevTools can be switched on in a release (e.g. QA) build.
  if (CorextraDevTools.instance.enabled) {
    CorextraDevTools.instance.logs.add(
      LogEntry(
        message:
            message.length > _maxPanelMessageLength
                ? '${message.substring(0, _maxPanelMessageLength)}… '
                    '[${message.length} chars total — full text in the console]'
                : message,
        level: level,
        timestamp: DateTime.now(),
      ),
    );
  }
}