flutterのログが途切れる



## about
Flutterのログが1023文字で途切れて困る件への対応

```dart
// 1024文字を出力したときのログ
[   +8 ms] I/flutter ( 8543): oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
oooo1020xxx //<- 1023文字しか表示されない
```

## 試したこと
いずれも長いログは途切れるようでした (方法があればコメントください)

foundationライブラリのdebugPrint();

simple_logger 1.7.0
https://pub.dev/packages/simple_logger

logger 0.9.4
https://pub.dev/packages/logger

## 環境
- macOS Monterey 12.2.1
- Dart 2.16.1 (stable)
- Flutter 2.10.2 (stable)
- Android Studio Bumblebee 2021.1.1 Patch 1
- Visual Studio Code 1.65.0

AndroidStudioでもVisualStudioCodeでも発生します。

## code

```dart
void print2(Object object) async {
  final defaultPrintLength = 1020;
  if (object != null) {
    final log = object.toString();
    var start = 0;
    var endIndex = defaultPrintLength;
    final logLength = log.length;
    var tmpLogLength = log.length;
    while (endIndex < logLength) {
      print(log.substring(start, endIndex));
      endIndex += defaultPrintLength;
      start += defaultPrintLength;
      tmpLogLength -= defaultPrintLength;
    }
    if (tmpLogLength > 0) {
      print(log.substring(start, logLength));
    }
  }
}
```

このメソッドを使って出力することで、ログが分割されるものの全て表示できました。

```dart
[+52057 ms] I/flutter ( 8543): oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo1020
[        ] I/flutter ( 8543): xxxx
```

## その他
XcodeでiOS等で実行するとログが途切れることなく出力されます。
少し時間が掛かりますがオススメです。

## refs

@karamage さんが教えてくれました :hand_splayed::hand_splayed: 

official issue
https://github.com/flutter/flutter/issues/22665

example code
https://stackoverflow.com/questions/49138971/logging-large-strings-from-flutter/56709205#56709205