log method

  1. @override
void log(
  1. String level,
  2. String message, {
  3. String? tag,
  4. dynamic ex,
  5. StackTrace? stacktrace,
})
override

Logs message with log level and optional tag, ex (exception) and stacktrace

Implementation

@override
void log(String level, String message,
    {String? tag, dynamic ex, StackTrace? stacktrace}) {
  var logTag = tag ?? LogTree.getTag();
  String? exDump;
  if (ex != null) {
    var tmpStacktrace =
        stacktrace?.toString().split('\n') ?? LogTree.getStacktrace();
    var stackTraceMessage =
        tmpStacktrace.map((stackLine) => "\t$stackLine").join("\n");
    exDump = "${ex.toString()} \n$stackTraceMessage";
  }
  String? postFix, preFix;
  if (useColors) {
    var colorizeWrapper = _defaultColorizeMap[level];
    if (colorizeWrapper != null) {
      var postPrefix =
          colorizeWrapper.wrap("PREFIX_SPLITTER").split("PREFIX_SPLITTER");
      if (postPrefix.length == 2) {
        preFix = postPrefix[0];
        postFix = postPrefix[1];
      }
    }
  }
  var logLine = LogLine(level, logTag, message,
      exceptionDump: exDump, postFix: postFix, preFix: preFix);
  var invokeMsg = logLine.toMsg();
  _channel.invokeMethod("log", invokeMsg);
}