initLogging function

void initLogging(
  1. Level logLevel, {
  2. dynamic logToConsole = false,
  3. LogFnType logFn = developer.log,
  4. ConsoleLogFnType consoleLogFn = print,
})

Implementation

void initLogging(
  logging.Level logLevel, {
  logToConsole = false,
  LogFnType logFn = developer.log,
  ConsoleLogFnType consoleLogFn = print,
}) {
  logging.Logger.root.level = logLevel;

  if (logToConsole) {
    logging.Logger.root.onRecord.listen(
      (record) {
        if (record.error != null || record.stackTrace != null) {
          consoleLogFn(
            '${record.time} '
            '[${record.loggerName}] '
            '${record.level.name}: '
            '${record.message} =>'
            '\n===================='
            '\n${record.error}:'
            '\n${record.stackTrace}\n',
          );
        } else {
          consoleLogFn(
            '${record.time} '
            '[${record.loggerName}] '
            '${record.level.name}: '
            '${record.message}',
          );
        }
      },
    );
  } else {
    logging.Logger.root.onRecord.listen(
      (record) {
        logFn(
          record.message,
          time: record.time,
          sequenceNumber: record.sequenceNumber,
          level: record.level.value,
          name: record.loggerName,
          zone: record.zone,
          error: record.error,
          stackTrace: record.stackTrace,
        );
      },
    );
  }
}