w static method
void
w(
- dynamic object, {
- dynamic level = LogLevel.FINE,
- dynamic header = true,
Implementation
static void w(dynamic object,
{var level = LogLevel.FINE, var header = true}) {
final frames = StackTrace.current.toString().split('\n');
final callerFrame = frames.firstWhere(
(frame) => !frame.contains('console.dart'),
orElse: () => '',
);
String startColor = "";
String endColor = "";
switch (level) {
case LogLevel.ERROR:
startColor = "\x1B[38;5;196m"; // bright red
break;
case LogLevel.WARNING:
startColor = "\x1B[38;2;255;193;7m";
break;
case LogLevel.DEBUG:
startColor = "\x1B[38;2;150;150;150m"; // gray
break;
case LogLevel.FINE:
startColor = "\x1B[38;2;80;220;120m"; // gray
break;
}
StringBuffer str = StringBuffer();
str.writeln("$startColor┌${"─" * 98}┐$endColor");
if (header) {
str.writeln("$startColor│ $callerFrame$endColor");
str.writeln("$startColor├${"─" * 98}┤$endColor");
}
for (var obLine in object.toString().split('\n')) {
str.writeln("$startColor│ $obLine$endColor");
}
str.writeln(startColor + ("└${"─" * 98}┘") + endColor);
print(str.toString());
}