57 lines
1.3 KiB
Dart
57 lines
1.3 KiB
Dart
import 'package:date_format/date_format.dart';
|
|
import 'package:flutter/rendering.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
|
|
|
|
enum ErrorLevel {ERROR, WARNING, DEBUG}
|
|
|
|
class Logger {
|
|
|
|
static List<String> _log = [];
|
|
|
|
static String getLog() {
|
|
String res = '';
|
|
_log.forEach((line) {
|
|
res += "$line\n";
|
|
});
|
|
return res;
|
|
}
|
|
|
|
static bool get isInDebugMode {
|
|
bool inDebugMode = false;
|
|
|
|
assert(inDebugMode = true);
|
|
|
|
return inDebugMode;
|
|
}
|
|
|
|
static void p(data) {
|
|
print(data);
|
|
}
|
|
|
|
static void e(String message, {dynamic stacktrace}) {
|
|
_writeToLog(ErrorLevel.ERROR, message, stacktrace);
|
|
}
|
|
|
|
static void w(String message) {
|
|
_writeToLog(ErrorLevel.WARNING, message, null);
|
|
}
|
|
|
|
static void d(String message) {
|
|
_writeToLog(ErrorLevel.DEBUG, message, null);
|
|
}
|
|
|
|
static void _writeToLog(ErrorLevel level, String message, dynamic stacktrace) {
|
|
if (isInDebugMode) {
|
|
debugPrint('$message');
|
|
} else if (level == ErrorLevel.ERROR) {
|
|
Crashlytics.instance.recordError('$message', stacktrace);
|
|
}
|
|
DateTime t = DateTime.now();
|
|
_log.add("${formatDate(t, ["mm","dd"," ","HH",":","nn",":","ss"])} [$level] : $message");
|
|
if (_log.length > 100) {
|
|
_log.removeAt(0);
|
|
}
|
|
}
|
|
|
|
} |