streamSyslogProcess function

Future<SyslogResult> streamSyslogProcess(
  1. Process process, {
  2. required String? predicate,
  3. required int? last,
  4. required bool follow,
})

Turns a started log process (adb logcat, log, idevicesyslog) into a SyslogStream. Output is decoded as UTF-8 with malformed bytes replaced, because device logs can contain arbitrary bytes.

Split out from _spawnAndStream so tests can pass in a fake process.

Implementation

Future<SyslogResult> streamSyslogProcess(
  Process process, {
  required String? predicate,
  required int? last,
  required bool follow,
}) async {
  if (follow) {
    return _followStream(process: process, predicate: predicate);
  } else {
    return _snapshotStream(process: process, predicate: predicate, last: last);
  }
}