logger method

  1. @override
void logger(
  1. String messageText,
  2. String objectText,
  3. String? errorLabel,
  4. FormattedStacktrace stacktrace,
  5. LogRecord record,
)
override

Implementation

@override
void logger(
  String messageText,
  String objectText,
  String? errorLabel,
  FormattedStacktrace stacktrace,
  LogRecord record,
) {
  final messageBuffer = StringBuffer();
  final firstLine = '${record.level.name}/${record.loggerName}';
  messageBuffer.writeln(firstLine);
  final localLoggerName = _getLoggerLocalName(record.loggerName);
  final leadingLine = '${record.sequenceNumber}/$localLoggerName';
  writeInBuffer(messageBuffer, leadingLine, messageText);
  writeInBuffer(messageBuffer, leadingLine, objectText);
  writeInBuffer(messageBuffer, leadingLine, errorLabel);
  final stacktracePrint = stacktrace.formattedStackTrace;
  writeInBuffer(messageBuffer, leadingLine, stacktracePrint);

  final wholeMessage = messageBuffer.toString();

  if (maxLineSize == -1) {
    printSingleLog(
      wholeMessage,
      record,
    );
  } else {
    final pattern = RegExp('.{1,$maxLineSize}');

    final matches = pattern.allMatches(wholeMessage);

    for (final match in matches) {
      final group = match.group(0);
      if (group == null) continue;
      printSingleLog(group, record);
    }
  }
}