printLog function
Logging config
Implementation
void printLog([dynamic rawData, DateTime? startTime, Level? level]) {
if (foundation.kDebugMode) {
var time = '';
if (startTime != null) {
final endTime = DateTime.now().difference(startTime);
final icon = endTime.inMilliseconds > 2000
? '⌛️Slow-'
: endTime.inMilliseconds > 1000
? '⏰Medium-'
: '⚡️Fast-';
time = '[$icon${endTime.inMilliseconds}ms]';
}
try {
final data = '$rawData';
final log = '$time${data.toString()}';
/// print log for ios
if (UniversalPlatform.isIOS) {
debugPrint(log);
return;
}
/// print log for android
switch (level) {
case Level.error:
printError(log, StackTrace.empty);
break;
case Level.warning:
logger.w(log, null, StackTrace.empty);
break;
case Level.info:
logger.i(log, null, StackTrace.empty);
break;
case Level.debug:
logger.d(log, null, StackTrace.empty);
break;
case Level.verbose:
logger.v(log, null, StackTrace.empty);
break;
default:
if (time.startsWith('[⌛️Slow-')) {
logger.wtf(log, null, StackTrace.empty);
break;
}
if (time.startsWith('[⏰Medium-')) {
logger.w(log, null, StackTrace.empty);
break;
}
logger.v(log, null, StackTrace.empty);
break;
}
} catch (err, trace) {
printError(err, trace);
}
}
}