需要打印的日志太长,使用分段打印日志内容;
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);
}
}
}
}
}
}