quick fix for isar async write problem

This commit is contained in:
Marco 2022-10-16 17:40:33 -06:00
parent fd9b09d37a
commit 3a2042eb92

View file

@ -12,8 +12,7 @@ import 'package:stackwallet/utilities/enums/log_level_enum.dart';
export 'enums/log_level_enum.dart'; export 'enums/log_level_enum.dart';
class Logging { class Logging {
static const isArmLinux = static const isArmLinux = bool.fromEnvironment("IS_ARM");
bool.fromEnvironment("IS_ARM");
static final isTestEnv = Platform.environment["FLUTTER_TEST"] == "true"; static final isTestEnv = Platform.environment["FLUTTER_TEST"] == "true";
Logging._(); Logging._();
static final Logging _instance = Logging._(); static final Logging _instance = Logging._();
@ -45,41 +44,47 @@ class Logging {
core.bool printToConsole = true, core.bool printToConsole = true,
core.bool printFullLength = false, core.bool printFullLength = false,
}) { }) {
if (isTestEnv || isArmLinux) { try {
Logger.print(object, normalLength: !printFullLength); if (isTestEnv || isArmLinux) {
return; Logger.print(object, normalLength: !printFullLength);
} return;
final now = core.DateTime.now().toUtc(); }
final log = Log() final now = core.DateTime.now().toUtc();
..message = object.toString() final log = Log()
..logLevel = level ..message = object.toString()
..timestampInMillisUTC = now.millisecondsSinceEpoch; ..logLevel = level
if (level == LogLevel.Error || level == LogLevel.Fatal) { ..timestampInMillisUTC = now.millisecondsSinceEpoch;
printFullLength = true; if (level == LogLevel.Error || level == LogLevel.Fatal) {
} printFullLength = true;
}
isar!.writeTxnSync(() => log.id = isar!.logs.putSync(log)); isar!.writeTxnSync(() => log.id = isar!.logs.putSync(log));
if (printToConsole) { if (printToConsole) {
final core.String logStr = "Log: ${log.toString()}"; final core.String logStr = "Log: ${log.toString()}";
final core.int logLength = logStr.length; final core.int logLength = logStr.length;
if (!printFullLength || logLength <= defaultPrintLength) { if (!printFullLength || logLength <= defaultPrintLength) {
debugPrint(logStr); debugPrint(logStr);
} else { } else {
core.int start = 0; core.int start = 0;
core.int endIndex = defaultPrintLength; core.int endIndex = defaultPrintLength;
core.int tmpLogLength = logLength; core.int tmpLogLength = logLength;
while (endIndex < logLength) { while (endIndex < logLength) {
debugPrint(logStr.substring(start, endIndex)); debugPrint(logStr.substring(start, endIndex));
endIndex += defaultPrintLength; endIndex += defaultPrintLength;
start += defaultPrintLength; start += defaultPrintLength;
tmpLogLength -= defaultPrintLength; tmpLogLength -= defaultPrintLength;
} }
if (tmpLogLength > 0) { if (tmpLogLength > 0) {
debugPrint(logStr.substring(start, logLength)); debugPrint(logStr.substring(start, logLength));
}
} }
} }
} catch (e, s) {
print("problem trying to log");
print("$e $s");
Logger.print(object);
} }
} }
} }