Flutter中日志打印不全

395 阅读1分钟

需要打印的日志太长,使用分段打印日志内容;

import 'package:lm_pay_flutter/common/constant/global_constant.dart';

class Log {
  Log._private();

  static final Map<String, List<String>> cacheMemoryMap = {};
  static const divider =
      "========================================================================================================================\n";

  static void i(dynamic content,
      {bool isCache = false, bool isPrint = false, String key = ""}) {
    if (GlobalConstant.isDebug) {
      if (isCache) {
        List<String>? cacheList = cacheMemoryMap[key];
        if (cacheList != null) {
          cacheList.add(content);
        } else {
          List<String> cache = [];
          cacheMemoryMap[key] = cache;
          cache.add(content);
        }
      } else {
        List<String>? cacheList = cacheMemoryMap[key];
        if (!isCache && !isPrint) {
          print("lm=$content");
        } else {
          if (cacheList != null) {
            cacheList.add(content);
            print(divider);
            int step = 700;
            for (var element in cacheList) {
              ///如果长度超出step个,则拆分成多个
              if (element.length > step) {
                double d = element.length / step;
                for (int i = 0; i <= d.toInt(); i++) {
                  print(element.substring(i * step,
                      i == d.toInt() ? (element.length) : (i + 1) * step));
                }
              } else {
                print(element + "\n");
              }
            }
            cacheList.clear();

            print(divider);
          }
        }
      }
    }
  }
}