2f7951190b
This changes the SessionLogFileSink from using `writeAsStringSync` and overwriting the whole file on each message. It does this by using `openWrite()` and keeping the `IOSink` instead. This means: - it uses `dart:io` (we don't have `openWrite`/sink support in the abstraction) - we need to call `close()` to flush the file during shutdown (there was already a shutdown method on the session logger, but it wasn't used or called, so now it is) This does mean the tests for this class write to the physical disk, but there are only two of them - most other tests use the in-memory sink (or are just testing the normalizer). Fixes https://github.com/dart-lang/sdk/issues/63275 Change-Id: I7ef347fc46d8ce3daf30ed2f9965e8921c5c4856 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/501640 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Samuel Rawlins <srawlins@google.com> Commit-Queue: Samuel Rawlins <srawlins@google.com>