buildLogPlainText function

String buildLogPlainText(
  1. LogEntry entry, {
  2. bool isConcise = true,
})

Builds a full plain-text export of entry covering general info, stack trace, and data sections.

When isConcise is true (default), the stack trace is passed through normalizeStackTrace to collapse framework internals while preserving boundary frames. When false, the raw stack trace is included as-is.

Implementation

String buildLogPlainText(LogEntry entry, {bool isConcise = true}) {
  final b = StringBuffer()
    ..writeln('=== General ===')
    ..writeln('Message: ${entry.message}')
    ..writeln('Level: ${entry.level.name}')
    ..writeln('Timestamp: ${entry.timestamp.toIso8601String()}');

  if (entry.activeRoute != null) {
    b.writeln('Active Route: ${entry.activeRoute}');
  }

  b.writeln('\n=== Stack Trace ===');
  final stackTrace = entry.stackTrace;
  if (stackTrace != null && stackTrace.isNotEmpty) {
    b.writeln(isConcise ? normalizeStackTrace(stackTrace) : stackTrace);
  } else {
    b.writeln('(none)');
  }

  b.writeln('\n=== Data ===');
  final data = entry.data;
  if (data != null && data.isNotEmpty) {
    data.forEach((k, v) => b.writeln('$k: $v'));
  } else {
    b.writeln('(none)');
  }

  return b.toString().trimRight();
}