feat: Colored logs on native and web
This uses the developer.logs method to print logs on native and console.logs on web. Therefore we have native colored logs everywhere without the use of a package. It highlights errors and warnings on web much better and supports collapsing stacktraces on web.
This commit is contained in:
parent
6f4f69106e
commit
2383cef438
|
|
@ -21,6 +21,8 @@
|
|||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
import 'print_logs_native.dart' if (dart.library.html) 'print_logs_web.dart';
|
||||
|
||||
enum Level {
|
||||
wtf,
|
||||
error,
|
||||
|
|
@ -124,20 +126,4 @@ class LogEvent {
|
|||
this.stackTrace,
|
||||
this.level = Level.debug,
|
||||
});
|
||||
|
||||
void printOut() {
|
||||
var logsStr =
|
||||
'# [${level.toString().split('.').last.toUpperCase()}] $title';
|
||||
if (exception != null) {
|
||||
logsStr += ' - ' + exception.toString();
|
||||
}
|
||||
// ignore: avoid_print
|
||||
print(logsStr);
|
||||
if (stackTrace != null) {
|
||||
// ignore: avoid_print
|
||||
print('## Stacktrace:');
|
||||
// ignore: avoid_print
|
||||
print(stackTrace.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
import 'package:matrix_api_lite/matrix_api_lite.dart';
|
||||
|
||||
extension PrintLogs on LogEvent {
|
||||
void printOut() {
|
||||
var logsStr = title;
|
||||
if (exception != null) {
|
||||
logsStr += ' - ' + exception.toString();
|
||||
}
|
||||
if (stackTrace != null) {
|
||||
logsStr += '\n${stackTrace.toString()}';
|
||||
}
|
||||
switch (level) {
|
||||
case Level.wtf:
|
||||
logsStr = '\x1B[31m!!!CRITICAL!!! $logsStr\x1B[0m';
|
||||
break;
|
||||
case Level.error:
|
||||
logsStr = '\x1B[31m$logsStr\x1B[0m';
|
||||
break;
|
||||
case Level.warning:
|
||||
logsStr = '\x1B[33m$logsStr\x1B[0m';
|
||||
break;
|
||||
case Level.info:
|
||||
logsStr = '\x1B[32m$logsStr\x1B[0m';
|
||||
break;
|
||||
case Level.debug:
|
||||
logsStr = '\x1B[34m$logsStr\x1B[0m';
|
||||
break;
|
||||
case Level.verbose:
|
||||
break;
|
||||
}
|
||||
// ignore: avoid_print
|
||||
print('[Matrix] $logsStr');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
import 'package:matrix_api_lite/matrix_api_lite.dart';
|
||||
import 'dart:html';
|
||||
|
||||
extension PrintLogs on LogEvent {
|
||||
void printOut() {
|
||||
var logsStr = '[Matrix] $title';
|
||||
if (exception != null) {
|
||||
logsStr += ' - ' + exception.toString();
|
||||
}
|
||||
if (stackTrace != null) {
|
||||
logsStr += '\n${stackTrace.toString()}';
|
||||
}
|
||||
switch (level) {
|
||||
case Level.wtf:
|
||||
window.console.error('!!!CRITICAL!!! $logsStr');
|
||||
break;
|
||||
case Level.error:
|
||||
window.console.error(logsStr);
|
||||
break;
|
||||
case Level.warning:
|
||||
window.console.warn(logsStr);
|
||||
break;
|
||||
case Level.info:
|
||||
window.console.info(logsStr);
|
||||
break;
|
||||
case Level.debug:
|
||||
window.console.debug(logsStr);
|
||||
break;
|
||||
case Level.verbose:
|
||||
window.console.log(logsStr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue