decorateMessage method
Implementation
List<LogLine> decorateMessage(
String formattedMessage,
LogLevel logLevel,
String tag,
DateTime? time,
String? formattedError,
String? formattedStackTrace,
) {
ANSIColor color;
switch (logLevel) {
case LogLevel.debug:
color = debugColors;
break;
case LogLevel.info:
color = infoColors;
break;
case LogLevel.warning:
color = warningColors;
break;
case LogLevel.error:
color = errorColors;
break;
default:
color = ANSIColors.white;
}
final lines = <LogLine>[];
final border = ' ${'─' * columns}';
final header =
'LEVEL: ${logLevel.name.toUpperCase()} - Time: ${time ?? DateTime.now()}';
final decoratedHeader =
' | $header ${' ' * ((columns - 3) - header.length)} |';
lines.add(LogLine(content: border, tag: tag, color: color));
lines.add(LogLine(content: decoratedHeader, tag: tag, color: color));
lines.add(LogLine(content: border, tag: tag, color: color));
for (var line in formattedMessage.split('\n')) {
lines.add(LogLine(content: " | $line", tag: tag, color: color));
}
if (formattedError != null) {
lines.add(LogLine(content: border, tag: tag, color: color));
for (var line in formattedError.split('\n')) {
lines.add(LogLine(content: " | $line", tag: tag, color: color));
}
}
if (formattedStackTrace != null) {
lines.add(LogLine(content: border, tag: tag, color: color));
lines.add(LogLine(content: " | StackTrace: ", tag: tag, color: color));
for (var line in formattedStackTrace.split('\n')) {
lines.add(LogLine(content: " | $line", tag: tag, color: color));
}
}
lines.add(LogLine(content: border, tag: tag, color: color));
lines.add(LogLine(content: "", tag: "", color: color));
return lines;
}