| // Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| import 'dart:convert'; | |
| import 'dart:io'; | |
| /// Used to write information about a performance to a log. | |
| class PerformanceLogger { | |
| /// The sink to which entries are to be written, or `null` if logging is not | |
| /// to be done at this point. | |
| late final IOSink _sink; | |
| new(String filePath) { | |
| _sink = File(filePath).openWrite(); | |
| } | |
| /// Write the given [data] to the log file. | |
| void logMap(Map<String, Object?> data) { | |
| _sink.writeln(json.encode(data)); | |
| } | |
| /// Shuts down the logger. | |
| Future<void> shutdown() async { | |
| await _sink.flush(); | |
| await _sink.close(); | |
| } | |
| } |