log method Null safety

  1. @override
List<String> log(
  1. LogEvent event
)
override

Is called every time a new LogEvent is sent and handles printing or storing the message.

Implementation

@override
List<String> log(LogEvent event) {
  if (EnumHelper.getIndexOf(Level.values, Log.loggingLevel) >
      EnumHelper.getIndexOf(Level.values, event.level)) {
    // don't log events where the log level is set higher
    return [];
  }
  //var formatter = DateFormat('dd HH:mm:ss.');
  //var now = DateTime.now();
  //var formattedDate = formatter.format(now) + now.millisecond.toString();

  var frames = StackTraceImpl();
  var i = 0;
  var depth = 0;
  for (var frame in frames.frames!) {
    i++;
    var path2 = frame.sourceFile.path;
    if (!path2.contains(Log._localPath) && !path2.contains('logger.dart')) {
      depth = i - 1;
      break;
    }
  }

  print(color(
      event.level,
      '${EnumHelper.getName(event.level)} '
      '${StackTraceImpl(skipFrames: depth).formatStackTrace(methodCount: 1)} '
      '::: ${event.message}'));

  if (event.error != null) {
    print(color(event.level, '${event.error}'));
  }

  if (event.stackTrace != null) {
    if (event.stackTrace.runtimeType == StackTraceImpl) {
      var st = event.stackTrace as StackTraceImpl?;
      print(color(event.level, '$st'));
    } else {
      print(color(event.level, '${event.stackTrace}'));
    }
  }
  return []; // TODO
}