log method

void log(
  1. int level,
  2. Object? object,
  3. String? tag, {
  4. bool isJson = false,
})

Implementation

void log(int level, Object? object, String? tag, {bool isJson = false}) {
  if (ansiColorDisabled) {
    ansiColorDisabled = false;
  }
  if (object == null || object.toString().isEmpty || !Logger.isEnable()) {
    return;
  }
  String message = object.toString();
  AnsiPen pen = getAnsiPen(level);

  String fileName = FileUtil.getFileInfo();

  String prefix =
      "${getLevelFirst(level)}${Logger.isShowFile ? fileName : ""} : ${tag ?? ""}";

  // 绘制开始时上边的分割线
  print("${pen.call("$prefix $_topBorder")}");

  // 处理有换行符的,比如说json
  List<String> lines = message.split("\n");

  for (String element in lines) {
    print("${pen.call("$prefix $_verticalLine $element")}");
  }

  // 绘制结束时下边的分割线
  print("${pen.call("$prefix $_bottomBorder")}");
}