log method

void log(
  1. dynamic logOrCommand, [
  2. dynamic log
])

Implementation

void log(dynamic logOrCommand, [dynamic log]) {
  final linioCommand = commandRunner.argParser
      .parse((log != null ? logOrCommand : (logOrCommand is String ? logOrCommand : '')).toString().split(' '));
  List<String> linioCommandResult;
  if (linioCommand.command?.name?.isNotEmpty == true) {
    linioCommandResult = commandRunner
            .run((log != null ? logOrCommand : (logOrCommand is String ? logOrCommand : '')).toString().split(' ')) ??
        [];
    if (log == null && logOrCommand != null) {
      logOrCommand = null;
    }
  } else {
    linioCommandResult = [];
  }

  final linioLog = log ?? logOrCommand;
  final tagCandidate = log != null ? (linioCommand.rest.isNotEmpty ? linioCommand.rest.first : '') : '';
  String linioTag = linioCommand['tag'] ?? (log != null ? tagCandidate : '');

  LinioLogType linioLogType = LinioLogType.static;
  switch (linioCommand['mode']) {
    case 'l':
    case 'live':
      linioLogType = LinioLogType.live;
      break;
    case 's':
    case 'static':
      linioLogType = LinioLogType.static;
      break;
  }
  LinioLogLevel linioLogLevel = LinioLogLevel.debug;
  switch (linioCommand['level']) {
    case 'd':
    case 'debug':
      linioLogLevel = LinioLogLevel.debug;
      break;
    case 'i':
    case 'info':
      linioLogLevel = LinioLogLevel.info;
      break;
    case 'w':
    case 'warn':
      linioLogLevel = LinioLogLevel.warn;
      break;
    case 'e':
    case 'error':
      linioLogLevel = LinioLogLevel.error;
      break;
    case 'f':
    case 'fatal':
      linioLogLevel = LinioLogLevel.fatal;
      break;
  }
  final options = LinioOptions(linioLogType, linioLogLevel, linioTag, linioLog ?? '', linioCommand);
  if (filters.any((element) => !element.shouldLog(options))) {
    return;
  }
  _print(linioCommand, linioCommandResult, linioLog, options);
}