output method

  1. @override
void output(
  1. OutputEvent event
)

Implementation

@override
void output(OutputEvent event) async {
  if (!completer.isCompleted) {
    await completer.future;
  }
  // 输出log到控制台
  // ignore: avoid_print
  if (!kReleaseMode) event.lines.forEach(print);
  // 输出log到文件
  var lines = event.lines.map((line) {
    return line
        .replaceAll("[38;5;12m", "")
        .replaceAll("[38;5;196m", "")
        .replaceAll("[38;5;35m", "")
        .replaceAll("[38;5;208m", "")
        .replaceAll("[38;5;244m", "")
        .replaceAll("[38;5;250m", "")
        .replaceAll("[48;5;12m", "")
        .replaceAll("[48;5;196m", "")
        .replaceAll("[48;5;35m", "")
        .replaceAll("[48;5;208m", "")
        .replaceAll("[48;5;244m", "")
        .replaceAll("[48;5;250m", "")
        .replaceAll("[0m", "")
        .replaceAll("[39m", "")
        .replaceAll("[49m", "")
        .replaceAll("", "");
  }).toList();
  _sink?.writeAll(lines, '\n');
  _sink?.writeln();
}