Report all errors to Crashlytivs if in production

This commit is contained in:
Yegor Vialov
2020-05-01 14:34:31 +00:00
parent 101569d6ee
commit 58842d1ebb
2 changed files with 21 additions and 17 deletions

View File

@ -1,7 +1,9 @@
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 {
@ -27,21 +29,23 @@ class Logger {
print(data);
}
static void e(String message) {
_writeToLog("Error", message);
static void e(String message, {dynamic stacktrace}) {
_writeToLog(ErrorLevel.ERROR, message, stacktrace);
}
static void w(String message) {
_writeToLog("Warning", message);
_writeToLog(ErrorLevel.WARNING, message, null);
}
static void d(String message) {
_writeToLog("Debug", message);
_writeToLog(ErrorLevel.DEBUG, message, null);
}
static void _writeToLog(String level, String message) {
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");