format method

  1. @override
String format(
  1. CherriMessage message
)
override

Implementation

@override
String format(CherriMessage message) {
  var timestamp = _addCostumeSplitter(CherriFormatterTimeStamp.format(message.timestamp, timestampPattern));
  var logLevel = _addCostumeSplitter(message.logLevel.abbreviation);
  var className = _addCostumeSplitter(message.className);
  var methodName = _addCostumeSplitter(message.methodName);
  var stackTrace = message.stackTrace;
  var formattedMessage = timestamp + costumeSplitter + logLevel;

  if (className != '') {
    formattedMessage += costumeSplitter + className;
  }

  if (methodName != '') {
    formattedMessage += costumeSplitter + methodName;
  }

  var aheadLength = formattedMessage.length + costumeSplitter.length;

  formattedMessage += costumeSplitter + message.message;

  if (stackTrace != null) {
    var frames = Trace.from(stackTrace).frames.toList();

    frames.removeWhere((frame) => frame.package == 'cherrilog');

    for (var frame in frames) {
      formattedMessage += '\n';
      if (autoFormatTrace) {
        formattedMessage += ' ' * aheadLength;
      }
      formattedMessage += frame.toString();
    }
  }

  if (autoColorize) {
    formattedMessage = _colorize(formattedMessage, message.logLevel);
  }

  return formattedMessage;
}