toStyledConsoleString method

String toStyledConsoleString({
  1. required AnsiStyle? messageStyle,
  2. required AnsiStyle? nonMessageStyle,
})

Implementation

String toStyledConsoleString({
  required AnsiStyle? messageStyle,
  required AnsiStyle? nonMessageStyle,
}) {
  final buffer = StringBuffer();
  final location1 = location;
  final hasLocation = location1 != null && location1.isNotEmpty;

  if (hasLocation) {
    final bracketStyle = nonMessageStyle != null
        ? AnsiStyle.bold + nonMessageStyle
        : null;
    final pathTextStyle = nonMessageStyle != null
        ? AnsiStyle.italic + nonMessageStyle
        : null;
    if (icon != null) {
      buffer.write('$icon ');
    }
    buffer.write('['.withAnsiStyle(bracketStyle));
    buffer.write(location1.withAnsiStyle(pathTextStyle));

    if (showTimestamp) {
      final isoString = timestamp.toLocal().toIso8601String();
      final timeStr = isoString.substring(11, 23);
      buffer.write(' @$timeStr'.withAnsiStyle(pathTextStyle));
    }
    buffer.write('] '.withAnsiStyle(bracketStyle));
  }

  if (message != null) {
    final styledMessage = message.toString().trim().withAnsiStyle(
      messageStyle,
    );
    buffer.write(styledMessage);
  }

  if (showTags && tags.isNotEmpty) {
    final tagStrings = tags.map((s) => '#${_unmangleSymbol(s)}').join(' ');
    buffer.write(' $tagStrings'.withAnsiStyle(nonMessageStyle));
  }

  if (showId) {
    buffer.write(' <$id>'.withAnsiStyle(nonMessageStyle));
  }
  return buffer.toString();
}