write method

  1. @override
void write(
  1. LogEntry entry
)
override

Write a log entry to this sink.

Implementation

@override
void write(LogEntry entry) {
  if (entry.level.index < minLevel.index) return;

  final icon = _levelIcons[entry.level] ?? '•';
  final time = _formatTime(entry.timestamp);
  final buf = StringBuffer()
    ..write('$icon $time ')
    ..write('[${entry.loggerName}] ')
    ..write(entry.message);

  if (entry.data != null && entry.data!.isNotEmpty) {
    buf.write(' ${entry.data}');
  }

  if (entry.error != null) {
    buf.write('\n  Error: ${entry.error}');
  }

  if (entry.stackTrace != null) {
    final lines = entry.stackTrace.toString().split('\n').take(5);
    for (final line in lines) {
      buf.write('\n  $line');
    }
  }

  // ignore: avoid_print
  print(buf);
}