outPutModeMethod static method

void outPutModeMethod(
  1. LogOption option,
  2. StackTrace stackTrace,
  3. LogMethod method, {
  4. String? mark,
  5. Object? value,
  6. List? list,
  7. Iterable? iterable,
  8. Map? map,
  9. bool isExpand = false,
  10. String? json,
})

Log output mode judgment method.

Implementation

static void outPutModeMethod(
  LogOption option,
  StackTrace stackTrace,
  LogMethod method, {
  String? mark,
  Object? value,
  List<dynamic>? list,
  Iterable<dynamic>? iterable,
  Map<dynamic, dynamic>? map,
  bool isExpand = false,
  String? json,
}) {
  log(TLog.getHeaderAndFooter(option));
  switch (option.mode) {
    case LogMode.brief:
      log(TLog.getPath(option, ILog.getFilePath(stackTrace)));
      log(TLog.getCount(option, ILog.getLine(stackTrace)));
      switch (method) {
        case LogMethod.list:
          if (isExpand) {
            log(
              TLog.getContent(
                  option,
                  option.language == Language.en
                      ? 'Collection expansion output, Style:(index -> value) ↓↓'
                      : '集合展开输出,样式:(索引 -> 元素) ↓↓'),
            );
            (list ?? []).iFor((index, element) =>
                log(TLog.getOutPut(option, '$index -> $element')));
          } else {
            log(TLog.getContent(option, list ?? ''));
          }
          break;
        case LogMethod.iterable:
          if (isExpand) {
            log(TLog.getContent(
              option,
              option.language == Language.en
                  ? 'A collection of values or elements expands the output, Style:(index -> value) ↓↓'
                  : '值或者元素的集合展开输出,样式:(索引 -> 元素) ↓↓',
            ));
            iterable!.iFor((index, element) =>
                log(TLog.getOutPut(option, '$index -> $element')));
          } else {
            log(TLog.getContent(option, iterable ?? ''));
          }
          break;
        case LogMethod.map:
          if (isExpand) {
            log(TLog.getContent(
              option,
              option.language == Language.en
                  ? 'Key-value pair collection expansion output, Style:(key -> value) ↓↓'
                  : '键值对集合展开输出,样式:(键 -> 值) ↓↓',
            ));
            final Iterable<dynamic> keys = (map ?? {}).keys;
            final List<dynamic> keysList = keys.toList();
            keysList.sort((a, b) => '$a'.length.compareTo('$b'.length));
            final int length = '${keysList.last}'.length;
            keys.toList().iFor((_, element) {
              final int curLength = '$element'.length;
              final dynamic value = (map ?? {})[element];
              log(TLog.getOutPut(
                  option, '${' ' * (length - curLength)}$element -> $value'));
            });
          } else {
            log(TLog.getContent(option, map ?? ''));
          }
          break;
        case LogMethod.json:
          log(TLog.getContent(option, json ?? ''));
          break;
        default:
          log(TLog.getContent(option, value ?? ''));
      }
      break;
    case LogMode.full:
      log(TLog.getTime(option));
      log(TLog.getProjectName(option));
      log(TLog.getPath(option, ILog.getFilePath(stackTrace)));
      log(TLog.getWidget(option, ILog.getWidgetName(stackTrace)));
      log(TLog.getMethod(option, ILog.getCallMethod(stackTrace)));
      log(TLog.getCount(option, ILog.getLine(stackTrace)));
      log(TLog.getSupport(option));
      log(TLog.getSplitLine(option));
      switch (method) {
        case LogMethod.list:
          if (isExpand) {
            log(
              TLog.getContent(
                  option,
                  option.language == Language.en
                      ? 'Collection expansion output, Style:(index -> value) ↓↓'
                      : '集合展开输出,样式:(索引 -> 元素) ↓↓'),
            );
            (list ?? []).iFor((index, element) =>
                log(TLog.getOutPut(option, '$index -> $element')));
          } else {
            log(TLog.getContent(option, list ?? ''));
          }
          break;
        case LogMethod.iterable:
          if (isExpand) {
            log(TLog.getContent(
              option,
              option.language == Language.en
                  ? 'A collection of values or elements expands the output, Style:(index -> value) ↓↓'
                  : '值或者元素的集合展开输出,样式:(索引 -> 元素) ↓↓',
            ));
            iterable!.iFor((index, element) =>
                log(TLog.getOutPut(option, '$index -> $element')));
          } else {
            log(TLog.getContent(option, iterable ?? ''));
          }
          break;
        case LogMethod.map:
          if (isExpand) {
            log(TLog.getContent(
              option,
              option.language == Language.en
                  ? 'Key-value pair collection expansion output, Style:(key -> value) ↓↓'
                  : '键值对集合展开输出,样式:(键 -> 值) ↓↓',
            ));
            final Iterable<dynamic> keys = (map ?? {}).keys;
            final List<dynamic> keysList = keys.toList();
            keysList.sort((a, b) => '$a'.length.compareTo('$b'.length));
            final int length = '${keysList.last}'.length;
            keys.toList().iFor((_, element) {
              final int curLength = '$element'.length;
              final dynamic value = (map ?? {})[element];
              log(TLog.getOutPut(
                  option, '${' ' * (length - curLength)}$element -> $value'));
            });
          } else {
            log(TLog.getContent(option, map ?? ''));
          }
          break;
        case LogMethod.json:
          log(TLog.getContent(option, json ?? ''));
          break;
        default:
          log(TLog.getContent(option, value ?? ''));
      }

      break;
    default:
      log(TLog.getPath(option, ILog.getFilePath(stackTrace)));
      log(TLog.getWidget(option, ILog.getWidgetName(stackTrace)));
      log(TLog.getMethod(option, ILog.getCallMethod(stackTrace)));
      log(TLog.getCount(option, ILog.getLine(stackTrace)));
      log(TLog.getSplitLine(option));
      switch (method) {
        case LogMethod.list:
          if (isExpand) {
            log(
              TLog.getContent(
                  option,
                  option.language == Language.en
                      ? 'Collection expansion output, Style:(index -> value) ↓↓'
                      : '集合展开输出,样式:(索引 -> 元素) ↓↓'),
            );
            (list ?? []).iFor((index, element) =>
                log(TLog.getOutPut(option, '$index -> $element')));
          } else {
            log(TLog.getContent(option, list ?? ''));
          }
          break;
        case LogMethod.iterable:
          if (isExpand) {
            log(TLog.getContent(
              option,
              option.language == Language.en
                  ? 'A collection of values or elements expands the output, Style:(index -> value) ↓↓'
                  : '值或者元素的集合展开输出,样式:(索引 -> 元素) ↓↓',
            ));
            iterable!.iFor((index, element) =>
                log(TLog.getOutPut(option, '$index -> $element')));
          } else {
            log(TLog.getContent(option, iterable ?? ''));
          }
          break;
        case LogMethod.map:
          if (isExpand) {
            log(TLog.getContent(
              option,
              option.language == Language.en
                  ? 'Key-value pair collection expansion output, Style:(key -> value) ↓↓'
                  : '键值对集合展开输出,样式:(键 -> 值) ↓↓',
            ));
            final Iterable<dynamic> keys = (map ?? {}).keys;
            final List<dynamic> keysList = keys.toList();
            keysList.sort((a, b) => '$a'.length.compareTo('$b'.length));
            final int length = '${keysList.last}'.length;
            keys.toList().iFor((_, element) {
              final int curLength = '$element'.length;
              final dynamic value = (map ?? {})[element];
              log(TLog.getOutPut(
                  option, '${' ' * (length - curLength)}$element -> $value'));
            });
          } else {
            log(TLog.getContent(option, map ?? ''));
          }
          break;
        case LogMethod.json:
          log(TLog.getContent(option, json ?? ''));
          break;
        default:
          log(TLog.getContent(option, value ?? ''));
      }
  }
  log(TLog.getHeaderAndFooter(option, type: false));
}