log method

void log(
  1. LogLevel level,
  2. String message, {
  3. String name = '',
  4. Object? error,
  5. StackTrace? stackTrace,
})

Implementation

void log(
  LogLevel level,
  String message, {
  String name = '',
  Object? error,
  StackTrace? stackTrace,
}) {
  if (!enabled) return;
  if (kReleaseMode && !printInRelease) return;

  final ts = includeTimestamp ? _timestamp() : '';
  final tag = name.isEmpty ? '' : name.padRight(nameWidth);
  final prefix = [if (ts.isNotEmpty) ts, if (tag.isNotEmpty) tag].join('  ');
  final body = prefix.isEmpty ? message : '$prefix  $message';

  final colored = _maybeColor(level, body);

  // debugPrint throttles long lines for us.
  debugPrint(colored);

  if (error != null) {
    debugPrint(_maybeColor(level, '  └─ $error'));
  }
  if (stackTrace != null) {
    debugPrint(_maybeColor(level, stackTrace.toString()));
  }
}